spd -say требует подходящей среды оболочки. cron не выполняет задачи в вашей обычной среде оболочки.
Вы можете попробовать изменить свой скрипт, как в этом примере:
#!/bin/bash
source $HOME/.profile
sez ()
{
echo $1
spd-say "$1"
}
sez "does this work"
sez "this does work"
См. также этот вопрос для получения дополнительной информации:http://unix.stackexchange.com/questions/67940/cron-ignores-variables-defined-in-bashrc-and-bash-profile