Uma opção poderia ser usar avfs
(assumindo aqui um sistema GNU):
mkdir ~/AVFS &&
avfsd ~/AVFS &&
cd ~/AVFS/where/your/gz/files/are/ &&
find . -name '*.gz' -type f -printf '%p#mkdir ~/AVFS &&
avfsd ~/AVFS &&
cd ~/AVFS/where/your/gz/files/are/ &&
find . -name '*.gz' -type f -printf '%p#%pre%' |
tar --null -T - --transform='s/.gz#$//' -cf - | pigz > /dest/file.tar.gz
' |
tar --null -T - --transform='s/.gz#$//' -cf - | pigz > /dest/file.tar.gz