Why is Android on iPhone or Lumia so difficult?

If I want to install a Linux distro on my PC, it's relatively easy. Why is it so much harder to install Android on non-Android hardware? I mean, it's open source. Why can't I download a stock ICS rom and put it on a Lumia 900 without any difficulty? I'm honestly curious about what the technical limitations are.