Sie mischen gefiltertes Include mit Entitätsfilterung.
Gefiltertes Einschließen
.Include(m => m.Roles.Where(r => roles.Contains(r.Name)))
filtert einfach die Elemente in der zugehörigen Sammlung (in diesem Fall Menürollen).
Um den Entitätssatz (in diesem Fall Menüs) zu filtern, müssen Sie ihn durch das übliche Where
ersetzen operator, der für die gewünschte Filterung verwendet wird
.Where(m => m.Roles.Any(r => roles.Contains(r.Name)))