The Arduino software preconfigures timer2 to generate a phase-correct PWM before your setup() routine is called. In phase-correct mode, the timer counts up to its maximum value and then back down to zero, at which point it overflows. What this means is that phase-correct PWMs have approximately double the frequency of fast PWMs (fast PWMs are generated by having the timer count up to the max value and then overflow back to zero).
Try reconfiguring the timer to generate a fast PWM and you should get the results you're expecting. You can do this by setting bits WGM21 and WGM20 of TCCR2A:
TCCR2A |= (1 << WGM21) | (1 << WGM20);
- Ben