A couple of differences are:
- VPLS is completely static layer 2 "routing" and therefor does not scale well. MPLS is completely dynamic layer "2.5" so is scales well, and heals dead routes.
- VPLS is just WAN ethernet, no QOS. MPLS enforces QOS across the entire path.
- I don't like VPLS, I like MPLS.