Consegui reproduzir o mesmo comportamento no Bash. O principal problema aqui é que você está usando variáveis de shell de uma maneira que não foram projetadas; e, portanto, não otimizado para. Quando você faz 'echo $ HUGEVAR', o shell tem que construir uma linha de comando contendo todo o conteúdo de $ HUGEVAR (mesmo que 'echo' seja um comando interno, ainda existe uma linha de comando).
Assim, o shell expande o HUGEVAR para uma string grande, que é então analisada novamente para dividi-lo no espaço em branco em uma lista de argumentos individuais para o comando echo. (Observe que isso terá o efeito de reduzir os caracteres de espaços em branco consecutivos no arquivo de entrada para caracteres de espaço único). Claramente, este processo não é muito eficiente com grandes strings.
Você deve usar o método 'cat bigfile' várias vezes; e permitir que o cache do sistema de arquivos do SO faça seu trabalho e acelere o acesso repetido do arquivo grande; você evita a modificação sutil (possivelmente indesejada) na string que o shell faz quando você usa o echo (mais o método 'cat' funcionará com arquivos binários onde o método do shell pode quebrar dados binários).