Você está misturando inclusão filtrada com filtragem de entidade.
Inclusão filtrada
.Include(m => m.Roles.Where(r => roles.Contains(r.Name)))
apenas filtra os itens na coleção relacionada (funções de menu neste caso).
Para filtrar o conjunto de entidades (menus neste caso), você precisa substituí-lo pelo usual
Where
oparador, que para a filtragem desejada será .Where(m => m.Roles.Any(r => roles.Contains(r.Name)))