Soft particles use the depth texture for the intersection fading, but transparent shaders like the water don’t write to the depth texture (only opaque object do), so the particles will just be clipped.
One way would be to have a custom particle shader which uses a height value for fading out (at water level) + soft particle implementation for opaque objects, but nothing automatic, unless the water is opaque.
I worked on a (non-Unity) game once where the water shader, despite being transparent, wrote to depth too. It gave the best set of trade-offs in our use-case.
It meant that shadows would cast onto the surface, but not to the sea/riverbed below.
It also meant that our equivalent of soft particles would work too.
We had to take care when to render it in the scene (it had to be rendered after opaques, but before all other transparents).