Drupal can be used decoupled, and as new features are added to Drupal 9, support for decoupling is given high priority under the API-First Initiative (ensure APIs are provided that allow programmers to select the parts of Drupal they want to use, and replace other parts as needed with custom solutions).
Historically, Drupal 7 + older versions are NOT decoupled (although older versions can e used headlessly with contributed modules), but starting from Drupal 8, decoupled use is supported by Drupal core itself.
Yes, Drupal does provide a frontend-- but this frontend is provided through modules that can be disabled. So Drupal can be used decoupled because it does not force you to use its UI; you can disable the Drupal UI and replace it with something else, like a React or Angular app.
What does headless use actually look like?
Contenta is a headless Drupal distribution that can give you an idea of how to set up Drupal for headless use.
To actually get at your content, Drupal provides support for JSON:API and REST in Core, and GraphQL is available via a contributed module. The JSON:API support is particularly great because it lets you expose all your content with Drupal permissions intact with very little additional configuration.
However, this is a pretty complex topic; there's a whole book on it:
There's also a great series of tutorials available at Drupalize.me.