Разобрался окончательно. Проблема моего скрипта в первой же строчке:
#!/bin/sh
При этом он использует фичи bash. Bash и sh - формально, разные оболочки, хоть и похожие. Но, видимо, в некоторых дистрибутивах ссылка /bin/sh ведет к исполняемому файлу bash или как-то так. Это бы объяснило невоспроизводимость бага на некоторых системах.
Кароче, если заменить первую строчку на #!/bin/bash, то все работает, как надо.