wall não envia cada linha de sua entrada como uma mensagem separada. Ele coleta toda a entrada para enviar um único título Broadcast Message from ... antes da mensagem, em vez de enviar um título separado para cada linha.
Se você quiser processar a entrada de uma linha por vez, insira um loop entre cat e wall :
cat |while read -r line; do wall <<<"$line"; done