But ultimately, this is a weakness of the Linux platform.
Most games today are cross-platform, so there is a core set of assets and code that has to remain the same across every platform to ensure the game plays the same way. This means that (for right now, anyway - Vulkan was designed to help with this situation) most hardware-specific workarounds/optimizations have to be done in the drivers -- and there are LOTS of them. Game-specific things like "run this shader code, but this model of card has graphical bugs when features x, y and z are active together so stealth disable feature x" or "this card supports this transform algorithm but its output is inconsistent with the version we developed it with, so disable it for this hardware" happen at the driver level. Same thing happens on consoles, but they usually have more direct control over the hardware so console developers have gotten used to this type of driver optimization.
This optimization doesn't happen on Linux (or Mac for that matter), so any games that get ported are just unoptimized.