Assumindo as ferramentas GNU (que você parece estar usando):
grep -r --include='*.tex' -lZ '{fig/.*}' . |
xargs -r0 sed -i.back 's:\({fig/[^}]*\)}:.png}:g'
grep para encontrar a lista de arquivos a serem atualizados, sed para fazer a atualização apenas para esses arquivos.
Ou se você quiser adicionar apenas o .png , se ele não estiver lá, o grep do GNU terá uma opção -P para o regEXp do PCRE com seu operador de look-behind (?<!...) negativo, mas não o GNU sed ainda (embora ssed na mesma família tenha), então mude para perl aqui:
grep -Pr --include='*.tex' -lZ '\{fig/[^}]*(?<!\.png)\}' . |
xargs -r0 perl -pi.back -e 's:(\{fig/[^}]*(?<!\.png))\}:$1.png}:g'
Com -i.back , o arquivo original é salvo com a extensão .back .