Você pode colocar o comando em um loop:
for file in *.flac
do
outfile="${file%.*}.png"
sox "$file" -n spectrogram "$outfile"
done
Quanto à nomenclatura de arquivos, a página do manual sox (1) parece sugerir que você possa nomear explicitamente sua saída arquivo na linha de comando para que você possa usá-lo dentro do loop.
A primeira linha no loop faz uso da substituição de parâmetro do Bash para remover .flac
extension do nome do arquivo e adicione a extensão .png
.