¿Por qué Microsoft no hace que Windows sea compatible con POSIX?

Lo hicieron. A nadie le importaba, así que dejaron de hacerlo.

Windows NT 3.51 tenía un subsistema POSIX que cumplía totalmente con la norma IEEE 1003.1-1990 y la ISO IS9945:1-1990. Lo mismo para NT 4.0. Un tercero (Softway Systems Inc.) licenció el código fuente de Microsoft y produjo una serie de productos (OpenNT, que más tarde se convirtió en Interix) que progresivamente añadieron soporte para más estándares POSIX; lo más importante, 1003.2-1992 (shell y utilidades) y algunos subconjuntos conformes de 1003.4 (IPC). También añadieron soporte para Berkeley Sockets (a pesar de que POSIX no los había estandarizado en ese momento).

Microsoft llegó a adquirir la tecnología de Softway Systems y la integró en su producto Windows Services For Unix (SFU). El subsistema POSIX actualizado se incluyó en el producto Windows para Windows 7 y Windows Server 2012R2.

A nadie le importó. Así que en Windows 8.1, el subsistema salió del sistema operativo. Hoy, Windows 10 incluye el subsistema de Windows para Linux, que proporciona compatibilidad binaria para los programas de Linux. Microsoft no reclama la compatibilidad con POSIX para WSL, porque a nadie le importa en realidad; les importa que su código compilado de Linux funcione.

(Revelación completa: fui Jefe Científico en Softway Systems y me uní a Microsoft cuando adquirieron la tecnología de Interix.)