Smartphones are remarkably similar. I can run Android on my older Windows Mobile phone with almost all the functions working (WiFi, phone, bluetooth, etc) because the hardware isn't vastly different. There are only a small number of mobile chipsets. Considering the huge variation of hardware a PC OS must handle, mobiles should be much easier.
AFAIK, the real reason is that there is no standardized design for phones, whereas most desktop/laptop/servers look basically the same to the OS.