Podrías usar el "lenguaje humano" como una analogía.
Los programas de Windows se comunican con el sistema operativo Windows mediante la API de Windows, la API es como un lenguaje.
Los programas de Linux se comunican con el sistema operativo Linux utilizando otro lenguaje, la API de Linux. Linux no "habla" la API de Windows, Windows no "habla" la API de Linux.
Hay formas de hacer que Linux comprenda la API de Windows, como instalar Wine como traductor.
Para mejorar un poco la analogía del "lenguaje humano":
Cada vez que un programa necesita mostrar algo en la pantalla (una ventana, texto, imagen, menú, botón...), leer un archivo del disco, conectarse a una red, emitir un sonido, hacer algo cuando un usuario hace clic con el mouse o cuando el usuario escribe algo, cada vez que un programa necesita hacer eso, debe pedirle al sistema operativo que lo haga. De hecho, hablar con el sistema operativo es lo que hace un programa la mayor parte del tiempo.
Tanto el sistema operativo Windows como el sistema operativo Linux pueden hacer todo eso fácilmente, pero dado que fueron creados por diferentes personas, ambos lo hacen de manera diferente y también el programa necesita solicitar esos servicios de manera diferente. Los lenguajes que hablan Linux y Windows son completamente diferentes.