A instrução insert deve ser enviada para o mysql, não outra linha no script de shell, então você precisa torná-lo um "documento aqui".
mysql --host=randomhost --user=randomuser --password=randompass randomdb << EOF
insert into table (field1,field2,field3) values('http://www.site.com/$hash','$file','$size');
EOF
O
<< EOF
significa pegar tudo antes da próxima linha que não contém nada além de EOF
(sem espaço em branco no início) como entrada padrão para o programa.