Если даты уже отсортированы и формат закреплён, и если уж совсем оптимизировать, то наверное как-то так:
const filter = (data) => {
  if (!data || !data.length) return [];
  const firstDate = data[0].date;
  const result = [ firstDate ];
  let lastMonth = firstDate.slice(5, 7);
  for (let i = 1; i < data.length; i++) {
    const { date } = data[i];
    const month = date.slice(5, 7);
    if (month > lastMonth) {
      lastMonth = month;
      result.push(date);
    }
  }
  return result;
}