Проблема с использованием опции selected в помощнике формы, если вы отправляете форму, то отправленное значение будет перезаписано выбранным значением, поэтому, если страница перезагружается из-за ошибки или чего-то еще, то пользователь теряет то, что было отправлено.
Я предпочитаю устанавливать значение по умолчанию в контроллере, если оно еще не установлено, в противном случае оно будет заполнено последней отправкой.
В контроллере:
if (!isset($this->request->data['start_date']))
$this->request->data['start_date'] = date('Y-m-d', strtotime('-1 month'));
Таким образом, при первой загрузке формы пользователю предоставляется желаемое значение по умолчанию, но если они передают форму один раз и возвращаются к ней, их выбранное значение все еще выбирается.