Both perform the same basic task. Shift only works during the session, M-Local works during the session or after the session is complete. Shift only allows one point to be used, while M-Local allows multiple points to be used for the translation. (Note even if multiple points are used, M-Local is still only a translation, no rotation. If you need rotation, you will need to look at Localization). A session is the duration of the current base session. If you are using your own base, then it runs from the time you start until you stop the base. If you are using a single base RTN, then it runs for the entire time you would use the RTN (so I suppose it could be for days). If you are using a VRS solution, then it will likely only last for a few minutes as the base is always being recalculated based on the user position.
My experience with Shift and M-Local is limited to working with my own base, so I'm not exactly certain of what to expect with an RTN. I would probably not use them with an RTN for this reason.