steps.step evalúa a una matriz de cadenas en este caso ["s1", "s2"] . El $lookup regular admite dicha comparación y hace $in entre bastidores.
En su segundo ejemplo, está usando $expr por lo tanto, debe usar lenguaje de expresión, por lo tanto, debe usar $in operador:
$expr: { $in: ['$_id', '$$stepId'] }