Обе операционные системы блокируют данные файла. Любая попытка изменить исполняемый файл во время его работы или библиотеку во время ее отображения приведет к ошибке "текстовый файл занят" в Linux.
$ gcc foo.c -o f
$ ./f &
[1] 2017
$ ls > f
bash: f: Text file busy
Разница только в том, что заблокировано. Windows блокирует запись каталога, Linux блокирует данные файла. Это различие существует по историческим причинам - давным-давно Windows рассматривал записи каталогов и данные файлов как по существу эквивалентные и, чтобы сохранить совместимость, многие из последствий этого проекта были сохранены. Linux всегда рассматривал записи каталога как указатель на данные файла.