Поведение PHP На разных ОС?
Могу предположить, что проблема тут не в скрипте, а в том, что было два запроса.
Попробуй использовать в $data microtime() или rand() чтобы понять что это не запись была два раза, а именно был вызван метод два раза
Кроме этого, погуглить советую про flock и fclose
запустил ваш код на макоси (в cli и браузере) – пишет одну строку.