C'est une fonctionnalité du pilote MongoDB. Il n'accepte pas le simple First(), il a besoin de quelque chose derrière. C'est ce que j'ai vu en déboguant. Vous devez donc soit continuer à travailler avec First()... soit interroger directement votre json :
var result = collection.Aggregate()
.Group(new JsonProjectionDefinition<People>(@" {
'_id': '$Name',
'docs': { '$push': '$$ROOT' },}"))
.Project<TopOne>(new JsonProjectionDefinition<BsonDocument>(@"{
'top_one': {
'$slice': ['$docs', 1]
} }"))
.ToList();