If this option is checked, Jenkins makes it possible to set an environment for the Job by defining environment variables and execute a script (a setup script).
All these actions will be executed before a SCM checkout.
By default, after the set up, only injected variables (with Jenkins variables) will be available in the build scripts, in the Jenkins post-actions, and so on.
Default inherited environment variables (inherited variables by the Jenkins process which often contains machine-specific information, like PATH, TIMEZONE, etc.) will not be available unless 'Keep system variables' is checked.