How much time do you have? I could write an entire book on shitty Linux hardware support.

My current laptop:

- Every time I connect any Bluetooth headset it usually (but not always) defaults to HSP/HFP rather than A2DP. I have googled lots, and apparently it's some sort of known bug, though nobody knows why it happens. None of the publicly-known fixes (yes I tried all of them) fix it. Sometimes A2DP just disappears as an option entirely, and I have to unpair and repair multiple times until it comes back.

- My video sucks. This laptop has hybrid graphics, which is sort of supported, depending on the kernel, the userland, the graphics cards & drivers. There is no official documentation of how to set it up (edit there is of course one or two distros with a Wiki page on setting up one or two graphics cards on one or two laptops, but if you don't have that particular hardware, "good luck" because it works differently for different hardware), and of course the distro doesn't figure it out automatically, leading to a wonderful scavenger hunt across the internet, that I have never needed to do with Windows. A magical combination of kernel arguments, environment variables, and driver configuration, lead to at least the graphics no longer having random tearing artifacts. There's no apparent way to turn off the card, either, so the GPU just soaks up power & generates heat, which makes the CPU fan churn all the time.

- Speaking of CPU: In a previous, really old distro, after fucking around with CPU frequency scaling a bunch, I accidentally got the CPU fan stuck on full-speed for 6 months. Later I installed some userland program which magically reset the CPU fan. I was able to tweak /sys/ files to silence the fan or make it explode, based on CPU scaling. But on modern kernels? The fan churns no matter how much I turn down CPU freq. None of the userland tools for CPU or GPU freq scaling make any difference, presumably because Linux simply exposes different controls for different hardware, and of course it changes from kernel to kernel, and the userland apps either don't keep up, or the drivers' functionality just doesn't work due to regressions. It actually worked in the older distro, though. (That's another thing Linux literally does not have: regression testing for hardware support, much less software, or a single database of officially supported/tested hardware)

- I can finally use power saving with WiFi without causing either a kernel panic or packet loss. This was a very old driver defect in very popular wifi cards, and this laptop is 5 years old. The suggested fix was "get a different wifi card". And of course, Windows did not have this bug. But better late than never?

That's just this distro + laptop. I have tried previous laptops with different distros where hard drives couldn't be detected or used during the OS install, where hardware was simply not detected, buggy drivers with missing hardware support, not to mention trying to figure out UEFI's bullshit. I've had sound cards not work, keyboard buttons not work, trackpads' functionality not fully supported, touch screens not be detected/work, and most every built-in SD card reader I've tried to use doesn't work or is a pain. Then there's the often not-working USB/HDMI hardware (cameras, audio, video, docking stations, etc) and keyboard feature keys like on/off wifi, display switching, brightness, volume, microphone, camera.

Some will reply with "yeah you need to spend a week researching fixes, what did you expect?" And some will reply "something like one of those things happened to me on Windows!" But in almost every case, any PC hardware will be designed and tested by the manufacturer to work on Windows, before they even ship their product, and is officially supported on (usually only) Windows. They will test their hardware on a given Windows version, release drivers, provide documentation, and accept bug reports. There is no such thing like that for Linux; either it works or it doesn't, and if it doesn't, tough luck. You can try to track down a kernel driver developer to report a bug. All of that's way over any average user's head, and it's really annoying even for me, a veritable expert.

Some hardware may work better on Linux because of poor drivers on Windows. But the hardware was designed for Windows, and is supported by the manufacturer for Windows. There is no logical argument that can claim Linux support is better if it's nonexistent.