distinct no MongoDB é um comando e comandos não retornam cursores. Apenas os cursores suportam limit(), enquanto os resultados do comando não, assim como sort() não é suportado aqui, e acho que a classificação é importante o suficiente para ser executada primeiro, caso contrário, você nunca sabe quais "dois primeiros" itens distintos você obtém
Existe uma maneira de contornar isso, mas usando a estrutura de agregação. Na consulta simples do MongoDB (como você usa no shell do MongoDB), você usaria:
db.places.aggregate( [
{ $match: { 'tags' : { $in: [ 'food' ] } } },
{ $group: { '_id': '$name' } },
{ $sort: { 'name': 1 } },
{ $limit: 2 },
] );
No Mongoid, suspeito que você possa alterar a primeira linha para:
Place.collection.aggregate( [