So bad emulator support wasn't an issue regarding Android's adoption.
Using the iOS simulator compared to the Android emulator is like night and day.
When you run your app on the iOS simulator, your app is compiled to x86 code and linked against an x86 build of the iOS frameworks - no emulation involved. The code —> build -> test cycle is so much faster with iOS.
With classic Windows Mobile with the .Net compact framework, you could do a lot of your testing just running your app on your desktop without ever using the emulator.
Also getting Mac hardware in some of those regions is quite expensive endeavor versus the average salary, if there are any stores at all selling them.
Also, I will here agree with pjmlp, having real device for development and testing with that real device will beat any emulator, native or not.
iOS still shines fit on device testing - you can conceivable have a representative sample of all iOS devices that your app should run on. I would probably want to have an SE, a 7s, and 8 plus and a X on the iPhone side and be okay with just one 9.7 inch iPad.
Solo developers, product leads and testers tend to choose the real device as their first destination. Linear coders and logic writers usually choose emulator.
Add a device variety testing. It's very hard to do right without emulator. Having all those device variations in physical form may be expensive and consume a lot of space.
My first job as a mobile developer was writing Windows Mobile apps for ruggedized devices. We had to test our apps outside with gloves on to make sure that the interface was usable by the field techs in the middle of the winter even if they lost their stylus.
HAXM has another downside: it doesn't run on AMD CPUs. If you wanted accelerated emulator on AMD CPU, you could use the Linux version with KVM or Mac version with Hypervisor.framework up until few months ago, when the emulator started to support the Microsoft Hypervisor Framework.