The difference is rather simple. After a &GLOBAL-DEFINE the constant remains defined until the compiler finishes the current program. A &SCOPED-DEFINE constant remains defined until the compiler finishes the current file, ie. the constant is only propagated downwards in the include stack, not upwards.
Also, a &SCOPED-DEFINE constant hides a &GLOBAL-DEFINE constant with the same name.