O que você está observando indica que nginx -V grava sua saída no fluxo de erro padrão (também conhecido como stderr - no descritor de arquivo 2 ) em vez do fluxo de saída padrão (também conhecido como stdout - file descriptor 1 ). Somente stdout é passado pelo canal | , portanto, o comando tr não o recebe.
A sintaxe 2>&1 diz ao shell para redirecionar stderr para stdout , de modo que seja canalizado para tr . FYI o posicionamento que você usou é sintaticamente legal, mas não convencional - na maioria das vezes esse tipo de redirecionamento seria escrito como
nginx -V 2>&1 | tr -- - '\n'
BTW o canal | está realmente redirecionando a saída do primeiro comando ao invés da entrada do segundo, que vem do fluxo de entrada padrão ( stdin - descritor de arquivo 0 ) como de costume.