I have a production database on a 2012 instance but the Compatibility Level is 2005. We are about to migrate the instance to 2019.
If we have to keep the database at the 2005 Compatibility Level, what are the risks or downsides?
And can running a database at an older Compatibility Level degrade performance, i.e. are we missing out on performance benefits that have been added over the years?
I would say it depends. Why is it running in 2005 mode to begin with? There may be some things that are deprecated from that version that you are using. There is a migration assessment you can run against the db that will warn you of issues. If you have the time, you should go through the database and change the compatibility level. There are alot more features that can be used to help with monitoring and performance improvements (i.e. security, availability groups).
It's in 2005 because they restored from older instance and didn't even know they should consider changing the Compatibility Level.