bson.M to interfejs mapy[ciąg], a nie plasterek. I potrzebujesz []interfejsu dla "$slice".
o1 := bson.M{"$project": bson.M{"user": bson.M{"$slice": []interface{}{"$user", 2, 1}}}}
Jeśli podzielisz się fikcyjnymi danymi, danymi wejściowymi i wyjściowymi, mogę Ci pomóc.