Suponho que você já saiba que o MongoDB é um sistema de banco de dados NoSQL que armazena dados na forma de documentos BSON. Sua pergunta, no entanto, é sobre os pacotes para Node.js.
Em termos de Node.js, o mongodb é o driver nativo para interagir com uma instância do mongodb e o mongoose é uma ferramenta de modelagem de objetos para o MongoDB.
O Mongoose é construído sobre o driver MongoDB para fornecer aos programadores uma maneira de modelar seus dados.
EDIT:
Eu não quero comentar sobre o que é melhor, pois isso tornaria essa resposta opinativa. No entanto, listarei algumas vantagens e desvantagens do uso de ambas as abordagens.
Usando o Mongoose, um usuário pode definir o esquema para os documentos em uma coleção específica. Ele fornece muita conveniência na criação e gerenciamento de dados no MongoDB. Por outro lado, aprender mangusto pode levar algum tempo e possui algumas limitações no manuseio de esquemas bastante complexos.
No entanto, se o seu esquema de coleção for imprevisível, ou você desejar uma experiência semelhante ao Mongo-shell no Node.js, vá em frente e use o driver MongoDB. É o mais simples de pegar. A desvantagem aqui é que você precisará escrever grandes quantidades de código para validar os dados, e o risco de erros é maior.