Você está no caminho certo, mas em vez de calcular uma diferença de horário, crie uma data absoluta correspondente ao primeiro dia deste mês. Defina a variável de ambiente TZ
para operar em um fuso horário diferente.
TZ=UTC date -d "$(date +%Y-%m-01) -1 month"
TZ=UTC date +%Y-%m-01