As variáveis não são expandidas entre aspas simples. Altere-as para aspas duplas e isso funcionará.
#!/bin/bash
for x in {1..11}
do
echo "
update hst$(date --date="$x days ago" +%m%d%y)
set x = 'Complete'
where y = 1;
" > update_x_hst.sql
chmod 777 update_x_hst.sql
isql -s history_hst update_x_hst.sql
rm update_x_hst.sql
done
Além disso, você deve definir a permissão para algo mais apropriado. Não é provável que o 777 seja necessário.
Não tenho certeza, mas você provavelmente pode canalizar esse SQL para isql
e evitar criar, chmoding e rming um arquivo temporário.
echo "something" | isql ...