Porque você não usou aspas simples ou duplas ao executar seu comando:
./command '*'
ou:
./command "*"
Ou, se você quiser usar o ./command * , faça a seguinte modificação no seu script:
#!/bin/bash
for f in ./"$@"
do
echo $f
done
Isso porque $1 refere-se ao primeiro argumento do seu comando e $@ refere-se a todos os argumentos do seu comando.
Leia também alguma documentação neste sentido: link