steps.step vyhodnocuje jako pole řetězců v tomto případě ["s1", "s2"] . Běžné $lookup podporuje takové srovnání a dělá $in v zákulisí.
Ve vašem druhém příkladu používáte $expr takže musíte použít výrazový jazyk, proto musíte použít $in operátor:
$expr: { $in: ['$_id', '$$stepId'] }