What is the most simple explanation for the fact that Windows applications are not Linux-compatible?

You could use the "human language" as an analogy.

Windows programs talk to Windows OS using the Windows API, the API is like a language.

Linux programs talk to the Linux OS using another language, the Linux API. Linux doesn't "speak" Windows API, Windows doesn't "speak" Linux API.

There are ways to make Linux understand Windows API, like installing Wine as a translator.


To improve the "human language" analogy a little:

Every time a program needs to display something on the screen (a window, text, picture, menu, button...), read a file from disk, connect to a network, make a sound, do something when a user clicks the mouse or when the user types something, every time a program needs to do that, it must ask the operating system to do it. In fact, talking to the operating system is what a program does most of the time.

Both Windows operating system and Linux operating system can do all of that easily, but since they were created by different people, they both do it in a different way and also the program needs to ask for those services in a different way. The languages that Linux and Windows speak are completely different.