Greasemonkey is the original Firefox extension, the development slowed down/stopped when Firefox changed how extensions work, it was restarted later. It's kind of heavyweight but very compatible with most scripts because it's the original.
Tampermonkey started as Chrome's alternative to Greasemonkey (because the latter was only for Firefox). I don't recommend it, see this[1]
Violentmonkey started as an Opera extension (back when Opera was using the Presto engine and wasn't compatible with Chrome extensions). It's more lightweight in terms of resource usage than Greasemonkey and doesn't contain analytics code. It was later ported to Firefox and Chrome.
If you need compatibility with old scripts your best choice is Greasemonkey. If you need it for modern scripts or to write your own Violentmonkey is fine. Avoid Tampermonkey, they are not to be trusted (proprietary license and analytics).
[1] https://www.reddit.com/r/firefox/comments/6hs59w/tampermonke...