The sinus function will move between -1 and 1 when you move around the circle.
You want to be between 0 and 255
so it means you need to translate and scale
sin(x) + 1 will be between 0 and 2
127*(sin(x) + 1) will be between 0 and 254
looking at your values
int pwmSin[] = {127,110,94,78,64,50,37,26,17,10,4,1,0,1,4,10,17,26,37,50,64,78,94,110,127,144,160,176,191,204,217,228,237,244,250,253,255,253,250,244,237,228,217,204,191,176,160,144,127}; // array of PWM duty values for 8-bit timer - sine function
it looks like your sine wave is starting from the mid value (127) and by decreasing whereas sin(0) is 0 and as the angle increases, so does the sinus (until you reach 90°) ➜ so the values you got are not taken for a period starting at 0° but more at 180°
the formula would be to take 48 samples between 180° and 540° (the red portion of the sinus curve) for the formula
y = 127 * (sin(x° * PI / 180°) + 1)
(the sinus function uses radians not degrees)