Ваша логика немного отсталая. Это:
if [[ -z $MONTH && -z $YEAR ]] || [[ -z $TIME ]]; then
usage
(«если я пропускаю месяц и год, это ошибка; или, если у меня они есть, но я пропускаю время, это ошибка») должно быть так:
if [[ -z $MONTH || -z $YEAR ]] && [[ -z $TIME ]]; then
usage
(«если я пропускаю месяц или год, и я пропускаю время, это ошибка»).