I'm assuming it's because the project isn't meant to "Render" markdown, but provide a preview that works offline. That includes hot reloading when the original file changes, which you can't really do with just a client-side library.
If it was a JS library in addition to providing you a webpage with js in it, it would also need to provide you with a server with a hot reload, and we're back to CLI.
They are using goldmark library with some extensions[0] to render markdown. And there's also GitHub API for rendering markdown[1] if you're curious.
References:
[0]: https://github.com/thiagokokada/gh-gfm-preview/blob/main/int...
[1]: https://docs.github.com/en/rest/markdown?apiVersion=2022-11-...