Purpose of both the Picklists is similar, to restrict or constraint the values of child Picklist based on the value of parent but we need to do different configuration to implement them.
The only reason I can think of using Constraint over Hierarchical Picklists is due to a limitation of Hierarchical Picklist showing all the values including child Picklist values.
Basic difference between Hierarchical and Constraint Picklist is as following:
Hierarchical Picklist (HPL): Business Component for HPL is Picklist Hierarchical
Constraint Picklist (CPL): Business Component for CPL is Picklist Generic
HPL: You will see all the values in Parent Picklist including Child Picklist Values
CPL: As both the parent and child fields have different Picklists associated there is no overlapping of values
HPL: Same LOV is used for Parent as well as Child Picklist Field and Parent LIC field is used to establish a parent and child relationship
CPL: Different LOV is used for Parent and Child Fields.