Esther is initially called Hadassah (Esther 2:7). Why does she change her name, ostensibly even before she is brought to the king's harem?
Haddasah was her hebrew name she changed her name to Esther which is Persian, as is Mordechai, to either hide her Jewish identity or, more likely since the megillah was written by her and Mordechai, to show that she has a sense of nationalism.
It appears that the Tannaim Reb Meir and Reb Yehudah (and others) dealt with this question in Megilla 13a.
Rabbi Meir said: her name was Esther; why was she called Hadassah?
Because of the Righteos Tzaddikim who are called Haddasim.
Rabbi Yehuda said: her name was Hadassah; why was she called Esther?
Because she hid her words (the information about her family).
See the Gemara there for more views.
Her name was changed under Babylonian captivity. They didn't have a choice (openly). The same as Daniel (Belteshazzar), Hananiah (Shadrach), Mishael(Meshach), and Azaraiah(Abednego).
She went by Esther in the palace because Mordechai told her to not reveal she was a Jew. The name Hadassah is a Jewish name and would have given her away.
(See Megillah 13a)
Hadassah it's a name with 11 variant depending where you are in the world: Astera, Asti, Astra, Estella, Esther, Etoile, Hadassah( Bride, star, Queen), Hester, Stella. She knew her destiny, She was not supposed to pass there as "slave Jewish girl- Hadassah". The covenant of God with them in that time demanded that Her name be translated in Greek in order for her to be selected at the contest so the uncle took the name Haddassah (in Hebrew) change it to Esther (In Greek). But it is the same and one name.