DV
Потому что проверка уникальности в массиве при добавлении выльется в O(n^2) алгоритм.
Ну либо просто сделать в начале объект типа:
const restorantsIds = this.restorants.reduce((acc, restaurant) => {и потом уже проверять:
acc[restaurant.id] = true;
return acc;
}, {});
if (!(restourant.id in restorantsIds)) this.mainFilter.push(restourant);