Provavelmente, a saída do comando está em buffer. Quando o comando grava em um terminal, o buffer é liberado em cada nova linha, para que você veja a taxa esperada. Quando o comando grava em um pipe, o buffer é liberado apenas quando atinge alguns kilobytes, portanto, ele fica muito lento. Assim é o comportamento padrão da biblioteca padrão de entrada / saída.
Para forçar o comando a não fazer o buffet de sua saída, você pode usar unbuffer
(do esperado) ou stdbuf
(do GNU coreutils).
unbuffer command | sed …
stdbuf -o0 command | sed …