Como suponho que seus nomes não têm sempre esses espaços, a melhor coisa a fazer seria simplesmente remover o espaço, se presente:
find . -type f -name "*mp3" |
while read file; do
album="$(basename "$(dirname "$file")")";
filename="$(basename "$file")";
artist=${filename%%-*}; artist=${artist%% }; artist=${artist## };
title=${filename##*-}; title=${title%% }; title=${title## };
title=${title%%.mp3};
eyeD3 -A "$album" -t "$title" -a "$artist" "$file";
done