In my company we have a system with 10 reports, all in metabase. Initially the reports were made only in production environment, but QA was not able check the reports to see if the data was correct in QA and staging environment, so we had the task of replicating all reports across all environments.
This solved the issue we had, but now we created another. Every change in a report, has to be made three times. It is really hard to maintain.
Not only me but most of my co workers as well found it really strange that one dashboard/report can only be connected to a single database, instead of the connection being passad as a parameter.
So my suggestion is exactly this: make the database connection be passed as a parametere for the dashboard, thus being able to use the same dashboard report for more than one database/system environment.