Достаточно обернуть все $file в кавычки:
date=$(stat --printf '%w' "$file" | awk '{print $1}')
mv "$file" "$date-$file"
Но пробелы в названиях, в твоём случае, не единственная возможная проблема. Парсить вывод ls считается плохой практикой. Вместо этого надёжнее использовать глобы:
for file in "$1"/*
Про причины хрупкости парсинга вывода ls можно почитать тут:
https://mywiki.wooledge.org/ParsingLs