node has to exist in the job container (or host runner) that actually runs the steps. installing it only inside the act_runner container usually does nothing, that process just starts the job.
with the docker-compose runner, labels decide the image. if the label is a bare/custom image with no node, checkout dies with exactly that PATH error.
point ubuntu-latest (or whatever you use in the workflow) at a current runner image that includes node, eg the gitea/runner-images ones from the docs now, not the 4 year old examples.
if you intentionally want host mode, the label needs to be host and then node on that machine PATH matters. for docker labels, fix the image, dont apt install node in act_runner.