The vendor specific prefixes allow a playground for vendors to define and test things their own way without setting expectations for things that are not standardized, are being standardized, or have not even been conceived of yet.
The point is that those things are/were still in "draft" specification and so it's asking for trouble to implement them in a way that will prevent changes to the final spec. I'm sure once the standards are finalized the prefixes will be dropped (or really, deprecated).
Because you get yelled at for doing a blink tag, but it's fine to do a moz-blink tag.
The problem is when browser #2 wants to implement blink. They shouldn't use your prefix, so they now have webkit-blink. And the HTML writer now needs to sniff the browser.
or whatever. (In practice everyone who provides these properties does so in a very similar manner, so it's easier than the above pseudosnippet suggests.)