I found the problem! I looked through the Roon logs myself and found many failed requests like this one:
Error: Failed to fetch image data: Error getting response stream (ReadDoneAsync2): ReceiveFailure (http://127.0.0.1:9300/image/uwiiaaaa.512.jpg)
I am a software developer and also have an instance of ElasticSearch running most of the time which uses ports 9200 and 9300. After shutting down ElasticSearch and restarting Roon all artwork appeared!
Thanks for the help @beka I think we can mark this closed.