I remember when I started doing development it was considered bad practice adding fields to the the default Document content type. In the modern experience it is now very easy to add new fields by clicking add new column. If you just want to add a single field to all sites, is there any recommended practice around this? I can see according to flows and retention policies it could add benefits having custom content types. But on the other hand when uploading documents in the modern experience it will ask you to choose from multiple content types. So the question in short what are your thoughts on just adding fields directly to the list?
First of all, adding fields directly to a library has no influence on content types.
When you add a column directly to a document library via modern UI, it can be used only in this library, not in other lists in this site or for any content type.
To add a single line of text column to all lists, libraries or content types in a site, the only solution is to create a site column via Site Settings > Site columns and then manually add it to the lists, libraries or content types.
You can also automatic this process with PowerShell script.