A função system() em awk executa o comando e retorna seu status. Você tem 0 porque o comando é sucesso. A saída de date +'%s' foi impressa separadamente.
Para obter a saída do comando externo, use getline () :
$ echo foo bar baz | awk '{"date +%s" | getline d; printf "%s %s\n", d, $0}'
1491147643 foo bar baz
Não há nada a ver com OFS , porque é um espaço por padrão.
Com gawk ou mawk , você também pode fazer:
echo foo bar baz | gawk '{printf "%s %s\n", systime(), $0}'
O systime() retorna o número de segundos desde a época, sem contar os segundos de salto
IOW, você pode fazer isso sozinho com date :
date +'%s foo bar baz'