PermGen has a fixed size which is why you would sometimes see PermGen out of memory errors.
MetaSpace uses the available memory on the OS and automatically increases / decreases the MetaSpace as needed, although this can be limited with some flag -XX:MaxMetaspaceSize=64m.
The main benefit I see is that you don't have to do anything to figure out what your permgen should be set to, so less tuning needed.
A good read: infoq.com/news/2013/03/java-8-permgen-metaspace