i=' expr $i+1 ' não está incrementando i , atribui i o valor de 'expr $ i + 1'.
Na próxima iteração do loop você executa [ $i -lt 100 ] . Como i não é incluído entre aspas duplas, isso se expande para [ expr '$i+1' -lt 100 ] . [ é na verdade um comando, e você deu muitos argumentos devido ao motivo acima.
Se você substituir i=' expr $i+1 ' por i=$(($i + 1)) , seu código deverá funcionar.
Editar:
Parece que, pelo menos, o Bash terá problemas com o número 008, ele o interpreta como octal. Você precisa atribuir 00$i , 0$i e $i a outra variável (ou echo "fla00$i" etc) se ocorrer algum erro após 008.
Nesse caso, você precisará fazer algo quando i > = 100.
Isso é o que eu faria:
i=1
while [ $i -lt 121 ]; do
if [ $i -ge 100 ]; then
echo fla$i
elif [ $i -ge 10 ]; then
echo fla0$i
else
echo fla00$i
fi
i=$(($i + 1))
done