Desde la versión 3.2 puedes hacerlo con $unwind en ambas matrices, $cmp los índices y $match sólo los índices iguales.
Esta solución completará lo que escribió en caso de que solo tenga el documento de ejemplo. Si tiene más documentos, no sé qué espera obtener en la salida, pero se puede resolver agrupando por _id del documento.
db.test.aggregate([
{
$unwind: {
path: '$dates',
includeArrayIndex: 'dates_index',
}
},
{
$unwind: {
path: '$numbers',
includeArrayIndex: 'numbers_index',
}
},
{
$project: {
dates: 1,
numbers: 1,
compare: {
$cmp: ['$dates_index', '$numbers_index']
}
}
},
{
$match: {
compare: 0
}
},
{
$project: {
_id: 0,
dates: 1,
numbers: 1
}
}
])