Moana sacrifices her own life to save their village, to prevent starvation against her father’s will. Ariel, against her father’s will, went on shore and fell in love with a human, the same species that killed her mother.
Moana’s outfit is also better than Ariel’s. We get that Ariel has to have a mermaid tail, but wearing that tiny little shell bra? Moana has a beautiful necklace from her grandma, which is her motivation.
Moana can control waters, Ariel can breathe in water without dying… Moana wins again. Moana can go in the water, moving oceans to make tunnels, and also can walk on land. Ariel can only go in the water, taking pain and punishments if she ever goes on land.
Based on the information above, Moana is the better princess.
Merida has a mother that wants her to marry a prince, and become a good-mannered queen of another kingdom, and Rapunzel has a “mother” who wants her to stay at home and cook and clean for her.
They both have magic, but Merida went out of her way to get a potion to fix her life (which ends up working, a bit), and Rapunzel didn’t have to do any work, she was just born with her magic hair.
Merida has many suitors sent to her from the other kingdoms and doesn’t want to marry them, she doesn’t need a man controlling her. On the other hand, Rapunzel essentially has a man thrown at her, and she ends up marrying him, the classic Disney princess trope.
Merida saves her mother and brothers from becoming bears forever and makes it just in time. She succeeds and brings her family closer. Rapunzel is saved by Flynn Rider who cuts her hair off and kills Mother Gothel, and a short time after, Rapunzel and Flynn get married.
On the information above, Merida wins.