The Lowest and Highest values in the Modifier are very important; When you go into Weight Paint Mode on the Plane, you can cleary see what they are doing. Also, when you make a change, you might need to refresh the Particle System (I usually change the Seed) in order for it to update.
And make sure that your icecubes are 1 Object.
It’s similar to Dynamic Paint, but not dynamic (at least not when used with a Particle System) and with greater control over the fall-off.
Of course a more obvious choice would be to use Geometry Nodes for this.
I haven’t been using it lately, but a simple setup like this already gets you close:

You have to use a Object Info Node for each cube, because it calculates the distance to the Origin of the Object.