I end up using all operating systems at some point, and at one point have used each of these as my primary OS for working.
Windows has a lot of software available for it which is good, but the quality of that software isn't always the best. Compared to almost every other OS out there, Windows feels 'backward', like it was designed to be opposite everything else. If you're a windows-only user you won't notice it since it's 'normal' to you, but if you use many OSes, Windows feels like wearing a pair of tight-fitting handcuffs.
Mac OS used to feel like Unix done Right™. It was a pretty desktop environment with some nice software libraries that let a lot of people make nice-looking apps. It used to be very configurable, but for every feature and every default setting, you knew somebody at Apple had thought about it and carefully set up very usable, nice defaults. Lately I feel like as they try to merge the UI of Mac OS and iOS they are improving iOS and ruining Mac OS a bit. The desktop environment that used to be a really nice computer desktop is slowly evolving into something more like a mobile device, which gets in the way of productivity.
Linux by contrast, is a little chaotic. It's infinitely configurable, so you CAN make it look prettier than anything else, but at times it also looks uglier than everything else too :P When I use Linux I feel like I'm in the middle of a hectic, messy kitchen. Great work can be done in that environment, and the whole setup is conducive to work, but sometimes it feels like work just to get things set up how you like them as well. When I use Linux as my primary OS I find myself spending a lot of time tweaking and fiddling with the setup to get it to that same 'nice' feeling I get using Mac OS without any messing around. But it is nice to have the power and freedom to change anything you want to in Linux as well.
Out of these three, Linux is by far the most conducive to coding, installing packages and dependencies, automating routine tasks with shell scripts, and just generally having a powerful command-line where you can manipulate files at an entirely different level than you can clicking and pointing to files and folders in something like Finder or Windows Explorer.
My usual setup now is using Mac OS as my primary OS for running software, but for my development work I'll often SSH into a Linux web server and do all of my work with my head in Mac OS, but my hands in Linux.