This is something I've noticed over the last few months. I did previously have an Amazon Music Unlimited subscription but now I use Spotify and have set Spotify as the default for music and podcasts.
I will often ask my Alexa to play a song and it will say "This song is only available on Amazon Music Unlimited", which I know to be false because I'll have been listening to the song/s in question that day. For example, I asked for the song "Spud Infinity" by Big Thief yesterday.
I don't know whether this is because the device stores this database internally and is simply out of date, though I've noticed this on much older songs too. I'm sure there's a technical reason and not some conspiracy, though I do find it strange that during the ~3 years I've owned an Alexa it only started behaving like this recently.
Your query gets routed to different backend services based on “intent”, and I’ve noticed that sometimes I have to append “on Spotify” to get my request routed to what I imagine to be the Spotify-interfacing backend rather than the Amazon music one.
If you get routed to the Amazon music one, it just checks if the song is eligible for free tier play but doesn’t check Spotify at all. That’s my theory at least, and it kind of maps with the state of Alexa when I left it a couple of years ago. The service that routes based on intent should probably call both music services when the user has not specified a preference and pick the most useful response to send to the customer, and probably does, but for whatever reason I notice this behavior sometimes from Alexa.
Tl;dr say “on Spotify” to fix the issue. literally 5 years after I joined Alexa the same bugs and bad ux still happens and is apparently not being prioritized to be fixed despite Alexa being basically useless for anything besides timers, weather, music, and maybe the occasional fact lookup..