I actually did ask my Doctor about why this happens once. Mainly it's because if a patient before you has something that needs more time it messes up the schedule for every patient after... and this happens every single day. If no one cancels their appointments, then this problem just continually compounds throughout the day. The best bet to being seen on time is to be the first patient of the day.
Or just intentionally show up a few minutes late and take the mild scolding from the receptionist. It's not like they're going to turn ya away