Please read Formatting code and log snippets in posts and update your post so that we can read, understand and cut-n-paste the code and documents you shared.
As you suspected in
the $project is the culprit. The server cannot assume that the index on the original documents could be use after the $project since it changes the structure of the documents. In your index probably could be used but determining that could be expensive for the server.
If you move the $project after the $match the index will probably be used.
Anyway, if you think about it, index or not, doing a $project on all documents then filtering a subset with a $match is certainly less efficient that filtering first and then altering.