It's mostly legacy.
Originally Lazarus assumed a string contained UTF8, and FPC not. So Lazarus built a wrapper around TProcess with that assumption, and extended it for years.
With 3.2.0 most of the unicode work done by Mattias was merged back into TProcess itself, with some additional work done in and after 3.2.2. So TProcessUTF8 is quite empty now, containing only a simple parameter splitter.