This is pretty much why I switched to a MacBook too.
Windows is a workable desktop OS, and it has great software support for things other than developer tools (I can also play games, for example). Unfortunately, its lack of UNIXness means half the open-source software world (at least, the portions I care about) doesn't work well with it, and this is a pain.
Because I wanted something UNIXy, I switched to Ubuntu (more than once), but the desktop experience isn't great (in particular, both my graphics and my sound were broken) and non-developer application support is poor (few games I wanted to play were supported or worked, not to mention other things).
OS X, on the other hand, has a solid desktop experience, sufficiently UNIXy underpinnings for development purposes, and has good enough application support for my needs.
I do have the option of switching over to Windows on this thing, but tellingly I haven't in the two years I've had it. (I do have a Boot Camp partition for Windows, but it exists for the sake of a single game. Everything else I want to do can be done in OS X.) While using Windows or Ubuntu it usually took less time than that before I got fed up and switched OS yet again.
My experiences aren't representative, of course. I don't just do web app and systems programming on my computer. If I did, I'd probably be fine with Linux. But sometimes I also do things like browse the web (including watching YouTube videos and using web pages which have WebGL), dabble in game development (Unity's editor doesn't run well under WINE), edit videos (there's no good Linux video editor), play games, and so on.
I'm also someone who doesn't like dual-booting. I don't want to have to deal with two completely different operating systems with their own user interfaces, and have to stop one activity and reboot if I want to do a different activity. I don't want to have to deal with the mess that is trying to share files between different OSes.
I bought the cheapest, newest MacBook I could find on Craigslist and gave it a while since I hadn't ever experienced Macs on a daily basis outside of school settings. Loved it instantly and haven't looked back.
Before Vagrant and VirtualBox all of my development truly was local. My Java still compiles local and the Tomcat server runs in my IDE, so I'd say I develop directly in OS X.
My other languages though (PythON, PHP, mostly) are written from the same IDE connected to Vagrant VMs because I don't want to have 25 instances of nginx/Apache running simultaneously and have a /hosts file longer than it already is.
I had a debian thinkpad while in graduate school that did what I needed it to do, but still ended up being extremely finicky after a few years (especially WIFI and power management). Despite always wanting to do work with computers, I've accepted the fact that I really don't want to have to play sysadmin on some personal machines, and am willing to pay to have them just work.
edit: one extra note, regardless of what platform I am developing with, my deployment target is typically some form of Linux HPC cluster, so I don't know if the OS X vs. Linux argument is particularly clear cut. I use both (and windows), but in very different ways. I don't have a clear incentive to pick one platform for everything.