Stylized Water Shader
The lighting method makes the biggest difference in performance, at least between “Simple” and “Advanced. As does enabling the normal map. For example, this is how a rather old Samsung Galaxy S4 Mini performs in comparison:
Modern devices can have all features enabled and still hit 60 fps.
To achieve reflections, all objects above the water are rendered using a secondary camera (for every camera). This means your polycount and drawcalls can essentially be doubled.
In order to minimize the performance impact, it is recommend to make use of the “Reflect Layers” dropdown. Small objects like grass or VFX could be ignored in this way. Make sure to always ignore the layer the water object is on, by default this is the “Water” layer. This avoids recursive reflections.
Alternatively, disable reflections entirely and use a Reflection Probe. In order to use this, the lighting method must be set to “Advanced”.
When splitting up your water into tiles, planar reflections should be disabled to avoid re-rendering reflections for every individual tile.