I have written a basic cloth simulator in Three.js. It runs fine on CanvasRenderer and I can see my mesh deforming nicely. However, as soon as I replace the CanvasRenderer with WebGLRenderer, the mesh becomes static. Shouldn't the code work same for WebGL renderer or am i missing anything here? Note that I am not using buffer objects nor shaders do I have to use them if I am using WebGLRenderer?
Yes, WebGLRenderer is different, you need to set dynamic and dirty flags:
(buffers and shaders are used all the time even without you doing anything explicitly, that's how WebGL works)