Depois de pesquisar todas as respostas e tentar fflush e stdbuf (que eu não sabia anteriormente, obrigado), descobri que a resposta está em duas partes:
1) O CentOS usa o gawk, o Ubuntu usa o mawk (por padrão).
I have no comment on which is better or why the decision to use either has been made, differences are what make the two distributions different. (:
2) mawk tem uma opção de linha de comando para "interativo", a partir da página de manual:
-W interactive
sets unbuffered writes to stdout and line buffered reads from stdin.
Records from stdin are lines regardless of the value of RS.
Eu só posso supor que é porque o buffer estava dentro do awk e não no próprio script que faz este trabalho onde o stdbuf não funcionou.