Os executáveis Linux e Windows usam formatos diferentes. O Linux usa o formato ELF na maioria das arquiteturas, enquanto o Windows usa o PE . O ELF é mais adequado para o modo como o Linux gerencia bibliotecas compartilhadas, e o PE é mais adequado para o modo como o Windows gerencia bibliotecas compartilhadas, mas não há razão fundamental para que o Linux não possa executar executáveis PE ou executáveis ELF do Windows. Na verdade, o Linux pode executar executáveis PE, por meio do Wine .
A dificuldade é que o Windows e o Linux têm APIs completamente diferentes : eles têm diferentes interfaces de kernel e conjuntos de bibliotecas. Então, para realmente executar um aplicativo do Windows, o Linux precisaria emular todas as chamadas de API feitas pelo aplicativo. Isso é muito trabalho. O vinho faz isso em certa medida, mas é muito difícil, especialmente porque o fabricante do Windows não coopera. Você pode compará-lo com, digamos, aprender inglês quando seu idioma nativo é chinês: o formato executável é o alfabeto (não tão difícil de dominar), a API é o vocabulário (leva anos para chegar a um nível em que você pode começar a ler literatura ).