Niestety nie udało mi się go uruchomić z zagnieżdżonymi obiektami BasicDBObjects.
W końcu użyłem notacji z kropkami, która działa dobrze:
// This query fetches the files I need
BasicDBObject query = new BasicDBObject("metadata.target_field", "abcdefg"));
List<GridFSDBFile> files = gridFs.find(query);