Qualquer shell ficará confuso se você modificar o arquivo de script enquanto o estiver lendo. A janela de tempo problemático pode ser muito pequena se o shell ler todo o arquivo de script antes de começar a executá-lo. Eu não sei se o ksh faz isso.
Se você criar um novo arquivo em vez de modificar o arquivo existente, ou seja, ln myscript myscript.running; mv -f myscript.new myscript
(ou qualquer outro método que mova o novo script em vez de modificar o arquivo existente), você não deve ter nenhum arquivo. problema.