...which Linux does support.
The problem is that compiled binaries (and this is a vast oversimplification) are targeted to one OS: Windows or Linux - and need to be recompiled to run under the other system. So even if I write a game that uses "OpenGL" as the rendering engine, if I write it for Windows, I'm likely to use Windows-specific calls. If I want the game to run under Linux, I either need to recompile the application for Linux (impossible if I don't have the source) or run it via an emulation layer.