Jenkins Tool vs Slave local tool
Installing it as a tool allows Jenkins to manage the binary and ensure it's available for your build while also providing supporting pipeline syntax withEnv(). Having an agent with the binary allows you to shell out and run your commands using sh without withEnv(). It also allows you to decide where these binaries come from depending on your agent type (static, vm, container, pod).

Personally, I prefer the latter because I can control the updating of said binaries on the agent in a more automated fashion.