Yes, your employer is right. See here and scroll down to the section on OT when there is a public holiday:
http://www.labour.gov.on.ca/english/es/pubs/guide/overtime.php
You get holiday pay (8 hours straight time) for Canada Day regardless of whether or not you work it (there are rules for if you miss work immediately before/after a stat holiday but that doesn't apply in your scenario). This holiday pay does not count towards whether you are entitled to OT pay or not.
OT pay does not kick in until you have already worked 44 hours in a week. So regardless of how many hours you work on a "day off", it isn't actually OT until you hit 44 hours. Then everything after that is OT. And remember, public holiday pay doesn't count (because you didn't actually work it).
So you worked a grand total of 40 hours (4 regular days x 8 hours + 8 hours on a day off) but you also collect 8 hours of holiday pay for a total of 48 hours pay (all at straight time). You didn't work enough actual hours (44) to trigger OT (you only worked 40) so none of your 48 hours of pay is at OT rate.
This is why people join unions. If you were in a union you (collectively) would have had the bargaining power to negotiate OT for all hours worked outside of your regularly scheduled hours (this is very common amongst unionized workplaces). So in the same scenario you would have received the amount above except that 8 of those hours would have been premium (OT) hours. Some unions have very provident (some would say ridiculously so) OT provisions where you get double or triple time (not just 1.5x like the normal OT treatment under the
ESA) when working on a stat holiday so doing so becomes VERY lucrative.
*Note: this isn't meant to hijack this thread into a pro/anti-union discussion. It's just meant to point out what "common" OT treatment looks like in a union environment vs. a non-union environment where only the
ESA applies.