Because you can have the newest flagship device and a lot of apps are not compatible, despite them being compatible with 'inferior' older hardware.
For example - same device say Samsung S4, you can have Revision|SKU (A) of a flagship device only to find a lot of apps are only compatible with Revision|SKU (B) or (C) due to the differening hardware in your version.
You can also have devices with near identical components and from different manufacturers and an app will be compatible with one, but not the other ....
iOS fragmentation is not the same as Android fragmentation. When people refer to iOS fragmentation they refer to bits of iOS 7 that older devices wont get - such as Airdrop.
However an app programmed for iOS7 for example will [normally] work on any device running iOS 7. Regardless of whether its new or old. Yes there may be performance differences or app limitations but fundamentally it will work regardless of device.
Android fragmentation is more 'hardware based' and effects third party software on a much wider scale than iOS. I still have a load of apps in my purchased section I can not use on my S4 or previous HTC One.
Due to the VAST array of hardware differences an application that lists itself as for Android 4.1 and above will not always run on specific hardware running that OS. And that includes latest devices and older devices.
At times it can be annoying with Android to find a lot of your older software will no longer work on your new device.
At least with iOS if you buy a new iPhone you can pretty much guarantee your entire back catalogue should run on it.
That's the difference between the two. The fact that companies like Samsung can have 3 or 4 different SKU's of the same handset with different chips and graphics processors and radios etc.. - means that the chances of incompatibility are just a lot higher on Android. Thats why it is fragmented, and certainly more so than iOS.
This misses the point entirely. Android OS should be compared to general PCs; you check out the specs beforehand and the version of the OS it is running in order to know or have an idea of what you can utlilise on the device.
I wouldn't expect to play DX11 games on a windows xp device until I had upgraded the OS and hardware. With a non upgradable device, its vital to have an idea of what it can do and be expected to do in the future.
This is something most of us do with many other devices, be it a computer, a HDTV, a DVD player, microwave etc; we look ahead at our expected usage and what may come about in the future that the device may be able to do or access.
Apps again, should be alikened to software; 'software A' which is utilised for a Radeon HD7800 running windows 7, may not be able to run at all on Windows Vista on a Nvida 8800 GT. Its misplaced then to blame the platform when getting burnt by not understanding the 'recommended specs' of the software.
The philosophy or the end product of how Android and IOS work offer alternative uses for different users. The trade off for a more PC-like platform is to have the same issues which confront PC users. However, anyone who is familiar with Windows and understands that it is not a closed system and yet can navigate themselves with minimal confusion regarding hardware and OS and the combination's compatibility with a specific piece of software, will have little problem with Android, understanding the tradeoff of the OS.
Obviously, with far less combinations of hardware and software configurations, as opposed to the almost infinite combinations with Android devices, Apps developed for the IOS platform will be less varied in compatibility. The tradeoff with IOS is that apps are somewhat held back by the capabilities of the lower end IOS devices and I'd say are artificially restrained.
So they both have pluses and minus'; the perspective is based on the user's preferred use of their device. No right or wrong answer.