O cabeçalho do arquivo gzip resultante é diferente dependendo de como é chamado.
O Gzip tenta armazenar algumas informações de origem no cabeçalho do arquivo resultante. Quando chamado em arquivos normais, isso inclui o nome do arquivo de origem por padrão e um registro de data e hora, que ele obtém do arquivo original.
Quando é feito para compactar os dados enviados para ele, a origem não é tão fácil quanto com um arquivo normal, por isso recorre a uma convenção diferente de nomenclatura e registro de data e hora.
Para provar isso, adicione o -n param às linhas problemáticas em seu exemplo como ...
~/temp$ tar c file | gzip -n > file1.tar.gz
~/temp$ tar c file | gzip -n > file.tar.gz
~/temp$ cmp file.tar.gz file1.tar.gz
Agora os arquivos são idênticos novamente ...
De man gzip
...
-n --no-name When compressing, do not save the original file name and time stamp by default. (The original name is always saved if the name had to be truncated.) When decompressing, do not restore the original file name if present (remove only the gzip suffix from the compressed file name) and do not restore the original time stamp if present (copy it from the compressed file). This option is the default when decompressing.
Portanto, a diferença é, na verdade, o nome do arquivo original e a informação de registro de data e hora que é desativada pelo parâmetro -n.