No special reason.
Sometimes one has data structure which have to be unique, then using a hash is handy.
Sometimes not ... I'm just listing another way to do it for one of those loosely defined PM requirements... :)
FWIW I'll change my post to make the restriction clearer ...
The question is rather how to design functional constructs like map which can easily (idiomatically) be used/combined to create nested data-structures which solve all possible requirements (sorted, nested, unique, non-string keys, ...).
Thats more a design than an implementation question, I rarely see people using List::MoreUtils here.
( addicted to the Perl Programming Language)