for não altera os diretórios para você. Você deve colocar ${dir}/ na frente de suas referências de arquivo e alterar algumas ' quotes para " para permitir a interpretação da variável shell
for dir in $(find salford_* -type d);do
sed -e "1r ${dir}/MenuSettings.bak" -e '1,2d' ${dir}/MenuSettings.txt >> ${dir}/MenuSettings2.txt
sed '/^AppName: */{h;s///;x;}; /^\(AppName_.._..:\).*/{s///;G;s/\n/ /;}' ${dir}/MenuSettings2.txt >> ${dir}/MenuSettings3.txt
rm -v ${dir}/MenuSettings2.txt
mv -v ${dir}/MenuSettings3.txt ${dir}/MenuSettings.txt
done
Também removi um "Uso inútil de gato". Google que.