Defines are replaced on compile time, so the string gets copied wherever you use it. Constants are initialized on plugin startup and the string is stored in memory with a pointer, which will be a better performer if you use it more than once as it won't have to be reinitialized.