This may be a stupid comment to make, but one I feel should be added to the conversation. Why are people so willing to develop for Apple when Android is now the larger platform, and has a far easier barrier to entry?
From what I understand, it's harder to actually sell on Android: there isn't (yet - Amazon are working on one) a store comparable to the App Store, and, perhaps related, the average user seems to be more reluctant to pay for apps.
There might be more Android phones out there, but you also can't get to them through the Android Market. Not every country that has Android has an App Store that will accept commercial apps. It's getting bigger and growing faster, but Apple is still ahead of Android.
Also, Apple's tools for developing are just superior. The Android SDK is an Eclipse/Netbeans Plug-in. Apple's is an 800MB-1GB version of XCode.
XCode is a really unpleasant IDE to work in imo because it has so many separate windows, even in the All-In-One view. Admittedly, this could just be because I am so used to the VS/Eclipse single tabbed window style.
I dislike that XCode is only available on OS X which adds the cost of (expensive) mac hardware to app development (or the difficulty/annoyance of updating a hackintosh every time a new version of OS X comes out).
And finally, it is annoying to have to download/install an 800MB-1GB version of XCode every time a new version comes out.
No, the metric here is Interface builder vs. the eclipse plugin for Android UI design. It's a lot harder to create an of equal or superior polish for Android.
In part because Android's many devices/configurations make it a less predictable development platform. (I'm not saying there aren't reasons to develop for Android, but you asked for one reason people don't do it more.)
I'm not sure I've talked to a single Android developer I know, including myself (yes, I talk to myself) that sees fragmentation as a significant difficulty in developing apps. Something to consider whilst developing? Of course (and fundamentally moreso if someone wants to support tablet devices now), but supporting multiple devices is something that Google's made ridiculously easy.
A friend of mine develops games for phones professionally, and he says fragmentation and the lack of ability to query the device for what operations it supports and only sell software for the supported hardware is a big problem for him.
Piracy - it's probably better to make free, ad-supported apps. Fragmentation. What you're able to do as a seller depends on the country you live in. The Android store is terrible (from what I've read and heard). General discoverability - Apple does a fine job of promoting apps. Messed up rules that will ruin your entire business[1]. Google's "Don't be evil" is bull[2].
It's my impression that iOS developers make more money - although cross-platform development can be considered.
I am probably never going to own an Android phone, so I won't be developing apps for myself which makes development too artificial.
This blog post has made me consider looking into Palm/WebOS, though.
I simply like the platform. The hardware is nice, Objective-C is a pleasant language for me to write in, the library is very well thought out. And it certainly does not hurt that we can keep the company afloat by developing for iOS -- we simply could not do that on Android.
Really? A few work clients of mine have recently moved towards developing apps for Android (funnily, after having their academia app rejected multiple times by Apple) and from what I've heard it is far easier to train people to write Android apps, they make far more money from ads and that most Android owners will purchase great apps simply because the developer was thoughtful enough to release it on their platform. It may be different in the UK, but to my knowledge they've ceased development on iOS to focus on Android.