Since Hugo produces static sites consisting only of files the URLs must point to an actual file. No way around that.
Hugo, like most other SSGs, take advantages of the fact that web servers by default will serve up a index.html file if it exist when the browser request a path that ends in a directory.
This make it possible to have nicer URLs like https://example.com/about/ instead of https://example.com/about.html.
The https://example.com/about/ example will in practice serve up https://example.com/about/index.html but the web server hides that fact from the user.
If you want to show https://example.com/about you can configure Hugo to use Ugly URLs so it produces https://example.com/about.html. Then you configure your web server to rewrite the URLs removing the .html part.