Linux supports more controllers out of the box than Windows in my experience. For example, the original Xbox controllers with an adapter cable to give them a normal USB-A connector work great in Linux but require third party drivers in Windows.
My 8bitdo pro 2 controller works out of the box in lutris. Plug and play.
In fact the only controller that wasnt plug and play was my gamecube controller with the official adapter. I typed in like one command iirc and then it was plug and play lol
Xbox and Playstation controllers work out of the box for me usually on steam and Heroic. Sometimes games try really hard to not recognize it but can usually made work.
Steam itself does a lot of heavy lifting when it comes to controllers. Steam supports Playstation, Xbox, and Switch controllers on its own, even when the OS doesn't.
Steam will usually hijack the built-in controller settings if you use the overlay and that's actually a good thing except for a few corner cases. The windows application does not really care what's on the other end because it's presented with a "proper" DirectInput controller.
I went with Fedora for my gaming desktop and I think the only controllers supported out of the box were direct input controllers. Personally I have a Xbox series x controller and wireless dongle. By default the dongle is used as a wifi adapter which kind of took me by surprise.
To get the controller working, I had to install the Xone kernal module from git. After that everything worked fine. Steam, Lutris and yuzu. Once you get a controller working on the system it pretty much works for any app that uses controller input.
Distributions can have a big impact on the effort and knowledge you need to get things working. For example Nobara flat out asks if you want to install xbox controller support.
YMMV but without proton, I found that my controllers only worked if they were plugged in at game start, and replugging them in mid-session prevented them from working. I eventually bought a Mayflash Magic NS2 wireless adapter and stopped having this problem - I'm not sure if it's because the adapter is always acting like a controller even without one connected, or if a coincidental kernel upgrade fixed it.
Everyone else covered the main details, I'll just add if you want to use an Xbox series X controller I found the Microsoft wireless dongle works best for wireless usage.
You would need to install the third-party xone kernel module though.