O motivo que é bash de builtin echo (e também o /bin/echo externo) por padrão não compreende escapes de barra invertida ( \ ), portanto \t está sendo tratado literalmente (em vez de tab) .
Você precisa usar a opção -e com bash incorporado emecho.
De help echo :
-e enable interpretation of backslash escapes
Então, em bash (ou usando /bin/echo ) você precisa:
echo -e "\t$num * $i =$s"
Por outro lado, sh ( dash ) incorporado em echo por padrão interpreta \t como guia, portanto, você está obtendo uma guia no caso de sh .
Para torná-lo portátil entre todos os shells compatíveis com POSIX, use printf :
printf '\t%s * %s =%s\n' "$num" "$i" "$s"