Если даты уже отсортированы и формат закреплён, и если уж совсем оптимизировать, то наверное как-то так:
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;
}