Heuristically, I agree with @Jonathan Moore's answer. However, you could try to take a more disciplined approach and model the distribution as a mixture of two distributions, and infer the parameters of the two distributions from that, which will allow you to make somewhat more informed decisions. A basic intro to mixture modeling in R is here.
However, a worry of mine when I see data such as this is that you have some confounder that leads to that spike at CV ~ 1. I would actually plot the mean against the SD of the genes in question, and make sure that it is not due to observations of e.g. one transcript across samples when in most samples there are zero transcripts (see last section here). This would almost certainly be noise, and then what you would be enriching for is genes with very low expression, leading to a very small denominator for the CV calculation. If you are pseudocounting the expression (for example adding 1 to all values to avoid dividing by zero), I would try a few different values for the pseudocount to ensure that the value of the pseudocount is not significantly affecting your CV distribution that you show here. That would be a major warning sign of artifacts.
Therefore I would also suggest setting some sort of cutoff for minimal expression of genes in that distribution. Maybe an average of 1 transcript per observation (sample [bulk RNA-seq] or cell [scRNA-seq]) might be a reasonable cutoff for genes to consider.
I would do this data cleaning and filtering before making any decisions about this CV distribution.