Copie as duas coleções em uma única coleção (inclua um campo discriminador, se necessário, para que você possa dizer que tipo de documento você tem em cada instância).
Execute map-reduce nessa coleção
No mapa, emita a palavra como chave e um valor, digamos
{instance:1, dict:0}
ou {instance:0, dict:1}
dependendo se o documento que está sendo mapeado é uma instância ou uma entrada de dicionário. (Você pode adicionar mais campos aqui nos valores conforme necessário.) Em Reduzir, acumule as pontuações (como de costume).
Agora faça uma consulta procurando por
instance > 0
e dict > 0
e você tem todas as palavras que estão em ambos.