My understanding is that WebGL effects can be tricky on mobile because some mobile GPU's have odd architectures whose shortcomings can cause effects to fail entirely.
For example, on my android phone, the noise effect fails due to the way my Adreno GPU handles the sin() operation used to generate the noise effect, as per this article:
I know I've also heard of seemingly cheap effects grinding games to a halt on mobile because the particular GPU has trouble handling certain mathematical operations or data types in an efficient way.
Then again, you might be hitting a simple fillrate issue. Try a lower resolution and see if that clears things up.
In my case, while the noise function fails, most other effects work fine. I have an Adreno 305, and I continue to be amazed that I can pile on multiple webGL effects without tanking the FPS. Yet, I'm CPU limited: a couple dozen physics objects brings me sub-30fps framerates.
That's mobile: you have to figure out what the bottlenecks are, because they simply aren't consistent. It's best to try and build tests into your own game, enabling/disabling effects depending on what the FPS is doing.
I've been thinking lately that it should be possible to test effect compatibility on mobile by having startup tests where effects were applied to test sprites, sprites captured to a paster object or via the CanvasSnapshot function, then processed as an array to check if the effect is actually working.
So, see if a white sprite with the noise effect has mostly uniform pixel values (effect is failing), or if all the pixels seem different from each other (effect is working). For HSL, transform a small sprite, and check that the captured color is the same or close to what it should be. Etc...