Com BSD date
, você precisa de uma sintaxe diferente:
DATE="$(date -v-7d)"
No meu FreeBSD man date
inclui:
-v Adjust (i.e., take the current date and display the result of the
adjustment; not actually set the date) the second, minute, hour,
month day, week day, month or year according to val. If val is
preceded with a plus or minus sign, the date is adjusted forwards
or backwards according to the remaining string, otherwise the
relevant part of the date is set.