Existem muitas coisas pelas quais isso pode ocorrer.
-
Os metadados armazenados pelo tar (assim como os metadados armazenados pelo gzip, que podem incluir a hora da modificação do arquivo tar). Vejo que você está usando algumas opções de tar GNU que potencialmente poderiam redefinir algumas partes desses metadados, mas eu aposto que as opções não são exaustivas de todos os atributos das variáveis.
-
A ordem dos arquivos. Quando você extrai os arquivos em um sistema de arquivos, a ordem dificilmente importa para a maioria dos aplicativos (embora cada entrada de diretório geralmente venha antes ou depois de qualquer outra entrada dentro do mesmo diretório no sistema de arquivos subjacente). No entanto, a ordem dos arquivos em um arquivo tar não é garantida.
-
A compactação gzip. É garantido pelo formato de arquivo que os arquivos compactados seriam descompactados para os originais, no entanto, não é necessariamente garantido que sua forma compactada tenha que ser idêntica. Além disso, se a entrada diferir no conteúdo (mesmo que permaneça no mesmo tamanho), então, da mesma forma, você verá que os dois arquivos podem ser tão diferentes a ponto de ter tamanho de arquivo diferente.
Em resumo, se você estiver tentando determinar se o conteúdo de duas pastas é o mesmo, provavelmente não é a melhor maneira de usar arquivos .tgz.