Tente isso
#!/bin/bash
checkUsage()
{
fileSize=$(stat -c%s $1)
while true; do
sleep 10
fileSizeNew=$(stat -c%s $1)
if [ "$fileSize" -lt "$fileSizeNew" ]; then
echo -e "[Notice : ] $USER you have mail!!!"
exit
fi
done
}
checkUsage $1
O problema com o seu código atual é que você está realmente verificando a diferença no tamanho do arquivo durante os 5 segundos da segunda suspensão. Significa que você iria declarar novamente o tamanho do arquivo a cada 10 segundos, depois esperar 5 segundos e declarar novamente o arquivo SizeNew e compará-los (ocupe-se do intervalo de 5 segundos).
No meu exemplo, você declara fileSize uma vez porque está fora do loop while, então a cada 10 segundos vamos dar uma olhada no novo tamanho e compará-lo com o antigo tamanho de arquivo original.