Mustache is a fine templating library and liked by a lot of people. However I see these drawbacks:
600 lines of code, 9 contributors for 20 line code problem
It’s therefore difficult to understand completely.
All data is automatically escaped for special characters in HTML.
In mustache programmers need to learn from the school of hard knocks to always use {{{ }}} syntax for tokens - otherwise user data with these special characters can break the application.
It’s not bad compared to some templating frameworks but having conditional if/not support is starting down the path of building a bad language.
It has unnecessary features like template caching - which exchanges speed for memory usage and adds complexity - premature optimization and a simpler library will be faster. This optimizing for a complicated design.
All data is automatically escaped for special HTML characters. This eliminates cognitive load of having to pick whether or not to escape data and eliminates a lot of bugs.
The library is small - you can see exactly what it does in one screenful of code. No big mysteries as to what it does
Zero fancy features - nothing whatsoever resembling a language with if conditionals and so on. Therefore zero danger of the templating library becoming a crappy language.
There are no fancy callback features to tempt developers to write complicated code. It’s only going to work with an array of data.
No caching or other unnecessary pre-mature optimizations - simple code will be faster anyway.
Putting the responsibility elsewhere for handling logic in absence of data etc. Encouraging separation of concerns.