The short answer is: unless you’re doing something with service-worker code like what https://github.com/whatwg/fetch/issues/66 covers, you don’t ever want redirect: 'manual'.
Longer answer:
The HTML spec requires browsers to first set the redirect mode to manual when the browser starts navigating to a resource. That’s the only use in any spec for the manual redirect mode.
But because the Fetch API essentially exposes the same primitives that browsers use internally for fetches, it exposes a manual redirect mode. However, just because the API exposes a particular primitive doesn’t mean there’s a good use for that primitive in frontend code.
The spec used to require that even though you could call the API with redirect: 'manual', browsers would throw if you did — because back then nobody had yet offered any valid reason for setting it for any case other than browsers doing navigations.
But that behavior got changed due to https://github.com/whatwg/fetch/issues/66, which gives a (corner) case where redirect: 'manual' is needed in service-worker code.
A similar case of something you can set in the Fetch API but with very little utility in web-app code is mode: 'no-cors'. That was initially added just because browsers use it for certain requests, so the Fetch API exposes it. But that’s another case that has limited utility just for service workers—for caching responses to serve back as-is later without any need to examine the responses (which mode: 'no-cors' prevents web-app code from doing).