There are hundreds of devices, all different, all with their own bugs and all running different versions of the OS to deal with. This is J2ME all over again.
That doesn't mean it's impossible, it just means it takes longer. It also means you need to go out and buy a tonne of development/testing phones.
All of the above might be okay for people with money and/or investment, but makes it difficult for small developers. Let's not even begin to talk about the Android Market, supported seller/buyer countries, currency display, return policies, etc, etc.
Compare that to iOS -- Apple rolls out an update to the OS, it works on all devices, and they're all identical. There's far less testing required (version N, N-1), and far less hardware investment too. You pop your app up on the App Store and it all 'just works'. That's what Steve is talking about -- integration vs fragmentation.