At a guess, because there are so many goals and tasks that require completion and so many people attempting to complete them but each with their own skillset and ability so that one language alone cannot cater to them all.
Not to mention different languages have different focuses. Some for more physics/maths based focus, others better for graphical focus etc etc.
I think deceptikon listed all the "good" reasons, but there are also "bad" reasons:
A new programming language can be an attractive sale-point to promote the adoption of some new framework (e.g., .NET or JVM).
A programming language can be a good tool for vendor-lock-in strategies when certain companies (cough.. Microsoft.. cough.. Apple..) get developers to adopt a language that is tied to a certain exclusive framework or operating system (cough.. .NET.. cough.. iOS..).
A programming language can be a good tool for vendor-lock-in strategies when certain companies
Objective-C was actually created in the 1980s, not by Apple for iOS, and today, that's just one popular use case for the language. Back in the day, it was used to write the flavor of Unix that OS X is based on. It only makes sense for Apple to encourage iOS apps to be written in the same language that the iOS, and OS X, itself, are written in.
Compare that to Microsoft who promotes their C# language and yet MS Windows is written in C/C++. (Mainly b/c C# is such a high level language, but still.)
For Each ctrl As Control In Me.Controls("pnlMainPanel").Controls
If ctrl.GetType Is GetType(System.Windows.Forms.Panel) Then
For Each subCtrl As Control In ctrl.Controls
If subCtrl.GetType Is GetType(System.Windows.Forms.TextBox) Then
If subCtrl.GetType Is ...