man date
diz:
SYNOPSIS
date [OPTION]... [+FORMAT]
Ele deve funcionar de qualquer forma, mas você está no lado seguro usando date
da maneira como a página de manual diz:
ddd=$(date -d "-1 month" +%Y-%m)
Com um script
#!/bin/bash
ddd=$(date -d "-1 month" +%Y-%m)
xmessage -timeout 10 $ddd
e a linha do cronjob
* * * * * DISPLAY=:0 /path/to/script.sh
funciona muito bem no meu sistema - veja Como iniciar um Aplicação GUI do cron? e o Cron HowTo .