Você tem que usar chaves ou aspas duplas em torno do nome da variável. O loop a seguir funciona.
Caso contrário, o shell tentará expandir a variável $i_output
.
for i in {1..22};do echo ${i} > ${i}_output.txt; done
for i in {1..22};do echo "$i" > "$i"_output.txt; done
No seu caso, chaves podem ser a melhor opção, já que você já usa aspas duplas e seu shell terá um problema com a classificação das aspas duplas internas e externas.
for i in {1..22}; grep -E "[a-z]+[0-9]+\t${i}\t" rawdata.txt > ${i}_chr.txt;done