I think I already know the answer to this, but I just want to know for sure whether my funds are lost. I have Specter desktop connected to my Bitcoin Core. But because I also sometimes use the Core wallet as a hot wallet, I accidentally generated the address in the core wallet that is linked to my specter wallet, but the core wallet is a watch-only wallet with the priv keys disabled and then I sent funds to this address and not the address generated by Specter or my default Core hot wallet. But because this is watch-only my Core wallet does not have the priv keys. I doubt that but is there any way for the wallet to know it generated this key by enabling priv key?
The Bitcoin would then be whatever addresses your watch only wallet is watching. Bitcoin Core won't just generate a keypair and throw away the private key, that would result in fund loss. In a wallet with private keys disabled, it will only use what has been imported into it in order to create addresses. If nothing has been imported into it, then it won't be able to make new addresses at all.
If the watch only wallet was created by Specter and it imported keys into that wallet, then you should expect to see your Bitcoin in Specter as well.