No routes are being loaded until the routing middleware runs, so you cannot use the router at that point, you are calling it in the context of the middleware() call, not in the context of the authorization middleware actually running. It works in getAuthenticationService() because that method is being invoked when the authentication middleware actually runs, which happens after the routing middleware runs.
Note that the docs do not state that you can use the Router::url() in the authorization config, what they do state is that you can pass routing URL arrays to the url option when using the CakeRedirect handler (as apposed to the regular Redirect handler):
$middlewareQueue->add(new AuthorizationMiddleware($this, [
'unauthorizedHandler' => [
'className' => 'Authorization.CakeRedirect',
'url' => [
'prefix' => 'Pages/Web',
'plugin' => null,
'controller' => 'Auth',
'action' => 'login',
],
// ...
],
]));