There's been some discussion about supporting in-process Starlark functions in the future, to avoid the docker requirement, but for now functions require docker.
However, while you do need the docker CLI locally, you don't necessarily need the docker engine locally (if you're not using volume mounts).The docker CLI be configured to execute containers in a VM or on a remote machine, instead of on the host machine.
If you don't want to use Docker Desktop, you can use a free alternative like Minikube.
With Minikube, you can configure docker CLI with `eval $(minikube docker-env)`
There's been some discussion about supporting in-process Starlark functions in the future, to avoid the docker requirement, but for now functions require docker.