See for the reasons.
In short, this allows easier schema management when there are multiple application instances, and where a downtime of Hibernate Search is acceptable. In that case, you don't want to perform the index creation on startup (since multiple applications will start), you want to control when and from where the indexes will be dropped and created. The mass indexer is an obvious candidate, but we may also want to expose APIs to trigger index creation/deletion explicitly.
When downtime is not acceptable, will be a more appropriate solution, but it's more complex to implement.