Difference between execute groovy script and the execute system groovy script in jenkins?

To execute a groovy script on the slave machine, you should use groovy plugin

Quote

The plain "Groovy Script" is run in a forked JVM, on the slave where the build is run. It's the basically the same as running the "groovy" command and pass in the script.

First part of your question is answered in the same page

The system groovy script, OTOH, runs inside the Hudson master's JVM. Thus it will have access to all the internal objects of Hudson, so you can use this to alter the state of Hudson. It is similar to the Jenkins Script Console functionality.