Ambos os sistemas operacionais bloqueiam os dados do arquivo. Qualquer tentativa de modificar um executável enquanto ele estiver em execução ou uma biblioteca enquanto ele estiver mapeado produzirá um erro "arquivo de texto ocupado" no Linux.
$ gcc foo.c -o f
$ ./f &
[1] 2017
$ ls > f
bash: f: Text file busy
A diferença é apenas em o que está bloqueado. O Windows bloqueia a entrada de diretório, o Linux bloqueia os dados do arquivo. Essa diferença existe por razões históricas - há muito tempo, o Windows tratava as entradas de diretório e os dados de arquivo como essencialmente equivalentes e, para manter a compatibilidade, muitas das consequências desse design foram mantidas. O Linux sempre tratou as entradas de diretório como um ponteiro para os dados do arquivo.