Dat is juist wel wat het doet, het start een for next loop.
Je commando is eigelijk zo:
for f in *.flac
do
ffmpeg -i "$f" -acodec alac "{f%.flac}.mp4a
done
De loop zit tussen do en done en de lijst waardoor je loopt is *.flac, dus alle bestanden die eindigen .flac.
f is een variabele, waarin elke iteratie weer een nieuwe pad naar een file staat. Inde eerste regel declareer je de functie, vandaar geen $ en later lees je hem uit, dan wel een $.