bson.M é map[string]interface e não slice. E você precisa de []interface para "$slice".
o1 := bson.M{"$project": bson.M{"user": bson.M{"$slice": []interface{}{"$user", 2, 1}}}}
Se você compartilhar alguns dados fictícios, entrada e saída, posso ajudá-lo ainda mais.