Você não quer um regex, você quer usar a expansão de parâmetro do Bash para remover a extensão do arquivo em trânsito:
for i in *.wav; do avconv -i "$i" "${i%.*}".mp3; done
Aqui, "${i%.*}" é expandido como o padrão no final do parâmetro , conforme definido por tudo ( * ) após o . excluir a correspondência mais curta, ou seja, .wav .
Você também pode fazer uma substituição literal com "${i/.wav/.mp3}" .