Fragmentation has been a major concern for Android developers in the past. Android has a growing number of OS versions from 1.0,

click to enlarge
to the recent 2.3 Gingerbread (3.0 if we're including the tablet OS), and an ever increasing number of devices running them. The more recent good news for developers though is that 2.2 has become the most popular, and when coupled with 2.1 makes for 90% of current users.
As an Android developer there is more concern about supporting older Android OS versions, with each having different display resolutions, different hardware specifications, etc. which leads to application incompatibility. If you are an Android developer, you also have to worry about supporting devices without cameras, devices with or without physical keyboards, devices with varying display resolutions and the UI element orientation on each of them. Android developers have to keep upgrading their apps to make sure they work with every new device and OS release. This leads to an inconsistent user experience. This was one of the reasons which led to the eventual death of J2ME.
The iPhone on the other hand has only four phone devices to support -- iPhone, iPhone 3G, iPhone 3GS, iPhone 4 -- and 4 major OS releases. All devices are backward compatible and support similar resolutions except the iPhone 4. They have similar hardware and thus offer a much better user experience across the board.