app.use() is especially designed for middlewares.
app.all(*) is intended to handle all the request coming to only & only to particular path only "/PATH" not for /PATH/MOREPATH, unless explicitly specified with wildcards or regex.
To handle /path and all sub-paths, you would need to use a wildcard like app.all('/path*', ...).
So , that's a basic difference .