In my case the custom map only shows in a shared dashboard if the user has previously logged in to Metabase in other web browser window. If you use another web browser it fails. Let's say you are in Edge (let's just say you are), you log in and go to dashbaords, the map shows perfectly then you copy the public link and open another Edge window. It works but if you go to Chrome or Firefox it will fail.
First I thought it was a file permission issue and since I'm running Ubuntu and all the json files are placed in /var/www/html I made sure I can watch the file by opening http://myserver/json.file which I can.
So, apparently you need to be logged in order to use a custom map in a public dashboard.