I guess where the logs live (if anywhere) would depend on what base image is being used. Since you can deploy using a Dockerfile, you can put pretty much whatever you want in there.
However the general approach is to output logs to stdout, rather than to an actual file.
The appeal of that is then they can be sent to a central place, rather than being per-vm (handy if your app has multiple vms). You can access a tail of the latest X lines from your app using flyctl logs or there is (or was) an equivalent in the Fly dashboard to see the same thing.
Or you can ship them off to an external service e.g Exporting Logs · Fly Docs Since the provided logs tail would only show the most recent lines, not ones from hours ago (which you may need for debugging).