Оболочка расширяет символы подстановки перед передачей списка аргументов в ваш скрипт.
Чтобы перебрать все файлы, переданные в качестве аргументов командной строки,
for f in "$@"
do
tr -s ' ' '\n' <"$f" | grep -c '<Author>'
done
Запустите его как
./countreviews /home/student/Downloads/reviews_folder/*
или, в более общем смысле,
./countreviews ... list of file names ...
Как вы обнаружили, "$1"
соответствует первому имени файла в расширенном списке подстановочных знаков.