My bad. I just looked at your values in post 1. Everything is ok up to 50%.Arduino Mega2560 has default PWM frequency near about 490 Hz. It comes around 2mS. If you can do cap calculations you can find the cap will charge to 5V in roughly about 1 sec with 2mS pulse width and 100% Duty. It no where needed to charge the cap in one cycle.
BAD 358? I doubt. I still try to check with your first suggestion to tie everything floating to ground cause it makes sense to me. I didn't understand the second one. Please elaborate.
I think the problem may be that the 358 can't drive 20 ma. Try it with 470 ohm load instead of 250. Or are you saying the output from the adrino is not 5 volts when you hook it up to the 4.7k.