This is less common than you think, and gets pretty hazy pretty fast where it is true.
The real reason is payroll and accounting.
If you leave an hour early to take your lunch, it looks like you only worked 7 hours.
Could this be fixed? Probably. But accountants are notoriously salty about anything that threatens to crack the mold.