I have been running desktop Linux for a very long time, but I actually agree. There's a lot of rough edges. I do think a lot of these problems do go away if you are a bit proactive in choosing compatible hardware. I bought my mother in law a laptop for Christmas, and I put Linux Mint on there [1]. There were no issues getting it working on Mint with Cinnamon, but that's in no small part because I double checked all the common hardware (wi-fi, GPU, trackpad, etc) to make sure it worked fine in Linux and it did.
If you don't do your homework, it's definitely a crapshoot with hardware compatibility, and of course that sucks if you're telling people that they should "switch to Linux" on their existing hardware, since they might have a bad experience.
That said, it is weird that people seem to have total amnesia for the rough edges of Windows, and I'm not convinced that Windows has fewer rough edges than Linux. I've grown a pretty strong hatred for Windows Update, and the System Restore and Automatic Repair tools that never work. Oh, and I really think that NTFS is showing its age now and wish that Microsoft would either restart effort on ReFS or port over ZFS to run on root.
[1] Before you give me shit for this, if anything breaks I agreed to be the one to fix it, and I find that generally I can solve these kinds of problems by just using tmate and logging into their command line which AFAIK doesn't have a direct easy analog in Windows.
How do you check the hardware is compatible in practice? Is there some reliable resource for doing this?