“%” is a range operator standing for the entire buffer; so :%s just means to start a substitution on the whole buffer. Neovim will highlight what was previously searched for, in this case matched by the *, but that won’t actually affect the search command.
The way :s works in Neovim looks like multiple cursors to me, but I’m not familiar enough with Helix to know what the difference is.