No primeiro, a implementação do tar usa uma biblioteca gzip para realizar a própria compactação. No segundo, a saída do tar é canalizada para um executável separado que executa a compactação. O primeiro é provavelmente um pouco mais eficiente, pois não envolve chamadas extras do sistema para gravar / ler os dados de / para o canal, mas um ser humano provavelmente não notaria a diferença.