Can't I disable bluetooth manually in the Watch settings to force it to use the internal GPS?
(iPhone + AirPods Pro for music, so I don't want to disable bluetooth on the iPhone. I'd use Spotify on the Watch if it wasn't for the download limit of 50 songs per playlist.)
So the distance shown in the WorkOutDoors app is all sensors and no GPS? And then Strava shows the GPS distance, because it syncs with GPX? For this runs WorkOutDoors and Strava show the exact same distance (for other runs there's can be a difference of +/- 0.01 km). EDIT: seems like I have TCX selected instead of GPX.
It seems to vary from version to version of iOS/watchOS but the last I heard switching off bluetooth on the watch was not enough because watchOS somehow still used it to get the GPS. However that does seem to vary according to setup so it is worth trying. You should be able to see if it works because the GPS signal strength shown on the app will drop for a few seconds as it switches. It usually goes from blue to red and then back to blue again.
Ever since the series 2 watch included a GPS sensor developers like me have been asking Apple to allow us to force the watch to use it, but Apple have refused. Or to be more accurate they have ignored us because they never reply to any such requests. My guess is that they are worried about bad publicity from the resulting extra battery draw on the watch, but maybe I am just being cynical.
By default the distance used by WorkOutDoors is that provided by Apple's workout system. They do not reveal much detail about how it is calculated but that link on calibration seems to imply that it involves using GPS to calculate your stride length and then uses that to calculate the distance.
And, as I mentioned, if people tell the watch they are running when they are actually doing something else then that can seriously affect Apple's distances, which implies that the GPS is not taken into account much (which surprises me). However I expect that they are constantly refining the way that distances are calculated so this may change.
If you send GPX files to Strava then it will calculate the distance from the GPS locations because GPX files cannot contain explicit distances. This is why the app defaults to using TCX files, which can contain distances. However Strava often (but not always) ignore the distances in TCX files and recalculate them from the GPS anyway, which is very annoying (especially as most other systems respect the data in the file).
So you are lucky that your Strava distances match so exactly. It sounds like Strava is actually reading the distances in the TCX file for you, because it is unlikely that pedometer-based distance estimates and GPS-based distance estimates would always match so exactly.