Depende do shell.
No bash, echo derp >file1 >file2 primeiro abre file1 , trunca e organiza para que stdout de echo derp seja gravado em file1 . Em seguida, o bash faz o mesmo para file2 : abre file2 , trunca e organiza para que stdout de echo derp seja escrito em file2 .
O efeito líquido é que file1 é truncado (ou seja, o conteúdo é excluído) e stdout entra apenas em file2 . Não há encadeamento acontecendo. O Bash só é capaz de redirecionar o stdout para um lugar por vez. Isso vale também para pipes: echo derp > file | cat resulta em "derp" escrito no arquivo, não no pipe.
No zsh, no entanto, echo derp >file1 >file2 grava em file1 e file2 , como você pode esperar intuitivamente. Veja MULTIOS em man zshmisc para detalhes se você usar zsh.
Para conseguir isso fora de zsh , você pode simplesmente usar tee : echo derp | tee file1 file2 > /dev/null é equivalente a echo derp >file1 >file2 de zsh.