Aninhe os ${...}
bits, mas considere também a legibilidade do código para futuros leitores.
() { clean_title=${${1:l}//[^a-zA-Z0-9]/-}; printf "$clean_title" } " BLA "
Além disso, a correspondência A-Z
provavelmente não faz muito sentido, considerando as minúsculas anteriores ...