A property’s value will be retained from one execution of the script to the next. I generally use them only if the value is modified by the script for use in subsequent executions.
Another difference is that properties are defined when the script is compiled - though they may be changed when it runs. ‘Set’ only happens when the script runs.