Summary:
By default when a holiday falls on a users weekly days off, the hours are not auto-populated in timesheet. However, there might be scenarios where you might find the hours being auto populated in the Timesheet.

Cause:
The reason for the above specified behavior is due to the fact that the users were assigned some other day of the week as weekly days  off and the Timesheet was generated at that point of time.

Resolution:
User can go ahead and delete the Timeoff booking directly (Only users with Edit/delete past time off bookings permissions can delete past timeoff bookings
Or the administrator can delete the Holiday Timeoff booking for user from Historical Timeoff's.

Note:
Deleting and re-generating the timesheet will not resolve the issue as deletion of the timesheet do not affect timeoff bookings.