parpool 'local' very likely used processes -- background thread pool had only just be introduced in R2021b. Here 'local' refers to a configuration named 'local', where there are ways to edit configurations by name.
parpool 'processes' is explicitly using processes.
There is probably no difference in execution model between the two different ways of designating the pool in those two configurations.
There could be differences in the numbers of workers allocated: although the default is one worker for each physical core ( not one worker for each thread), in theory the parpool 'local' might happened to have been configured with a different number of workers.
That said: different CPUs can be at different speeds even if they happen to be exactly the same model. And different models might have different instruction sets with different instruction timings. AMD vs Intel can make a difference in performance.
But more particularly: between R2021b and R2023b, there was an upgrade on the high-speed libraries used on Windows systems. That kind of upgrade often does not make much difference in performance, but in some cases the algorithms were improved a lot. It is known, though, for upgrades in the algorithms to become more sensitive -- to detect precision problems on marginal systems that used to scrape by... or sometimes to detect precision problems and decide that the system needs to go through a different algorithm because the more common algorithm would probably produce weak answers.
Thus, although during upgrades the general trend is for performance to stay the same or improve, sometimes increased numeric analysis leads newer versions to give up early, or to take slower paths for marginal systems.