The reason is that these environments are designed with user-friendliness in mind. Now what does that mean? it means that stuff should be easy to find, simplified enough for somebody who is learning how to interact with the machine, trying to remember what, where and how. As a professional programmer you should not care at all about that. You are not a user, you are a frigging master of the computer universe.
You should care about avoiding unnecessary clutter so that you can focus easier, minimizing time from thought to action to avoid breaking the flow, about flexibility so you can adapt the environment to your personal needs and increase productivity. Erik Naggum nailed it long time ago [0].
You can have a tablet and do your non-work related activities there, iOS, Windows, whatever, but when you are working use your workstation! if you don't have one create it. You will be amazed by how much more productive you can be, how much happier you can be.
I use StumpWM, Emacs, Conkeror, Ergodox with a custom layout and blank keys, and a trackball. The only thing a "user" can do on my machine is move the pointer and pull out the power cord, but in my hands this thing flies!
[0] http://www.xach.com/naggum/articles/3065048088243385@naggum....
Edit: Let me be clear, this is my personal journey from Windows to MacOS and finally to a custom setup on Linux and the reasoning behind it. I certainly do not mean to preach.
I concede that thinking hard is and always will be the main component of professional work, but perhaps from time to time we should ponder what an environment could be like if it was made for professionals not for users. If we simply keep accepting what is available and let others think for us we will only get more of what Apple does and less of what might be best for us. We are not the majority of Apple users, and probably never will be, it is not in their best interest to put us ahead of them when making various decisions.