Sadly this gives Zigbee a bit of a bad name as people think that these “Zigbee products” are, well, Zigbee products. In fact a lot of these cheaper devices are not compliant - they use 802.15.4 (which Zigbee also uses), but they don’t use the Zigbee Cluster Library (ZCL), or they don’t use it fully, and it’s this layer that provides the interoperability.
I’ve had some abuse over the years from people who get upset that the binding tries to focus on Zigbee devices, but at the end of the day when it’s just me trying to add support, I prefer to try and focus on the standards. If devices use the standards, then the binding will for the most part work with them. There’s always the occasional time that a manufacturer adds some special function to make their device better, and this is exactly the same in ZWave. Often these functions aren’t absolutely necessary, and the command line tools I provide can allow some level of configuration etc with them. The binding can also be configured to take definitions for devices that work with the standards, but have some extra non standard functions.
The problem with the Tuya devices is they really use a different concept on how they communicate.
Anyway, as @anon71759204 said, if you get something that says it’s Zigbee certified, that’s a good start - although as we know, some people don’t care too much about the truth and might print this on their box anyway, and so checking with the Alliance database is always good (but this can sometimes be hard to find devices in).