From looking at BF-30486 it appears that creating a hidden:true index when the same hidden:false index already exists doesn't actually report an error.
From looking at the logs, it can be seen that on one of the shards, the index indeed got dropped successfully, but a concurrent incoming migration of a first chunk from a collection managed to re-create it with the options it had from before the drop (relevant log lines posted below).
Because the index is now existent, the create statement (which creates it with hidden:true) just became a no-op.
This ticket is just to improve the createIndex command to report an error in this case.