No se permiten espacios en blanco alrededor del = en una tarea.
dir="${file%%.*}"
Por el contrario, los espacios en blanco son requeridos en una prueba.
if [ -e $dir ]; then
^ ^
En cuanto a las mejoras estilísticas, no está de más hacer un mkdir -p innecesario , para que puedas deshacerte del if declaración.
No se requieren comillas en una tarea, por lo que puede eliminarlas del dir= línea. Sin embargo, citar es una buena idea en cualquier otro lugar, así que no elimine las otras citas.
Podría ser bueno agregar un .* extra al bucle for. De esa forma, si ejecuta el script más de una vez, no intentará mover esos subdirectorios recién creados. Y un buen truco (aunque no necesariamente una mejora) es acortar BR*.* W0*.* a {BR,W0}*.* .
for file in {BR,W0}*.*; do
dir=${file%%.*}
mkdir -p "$dir"
mv "$file" "$dir"
done