There are several factors that limit certain champs from getting skins (based on hearsay around the boards and general logic - nothing "official")
Some champs have additional elements that need to be "skinned" as well - Zyra plants, Illaoi Tentacles, Yorik ghosts ghouls, etc. Since these are generally things that the champion and other players interact with, they must be visually distinct from the map, identifiable as the thing they're supposed to be, and look different from the base/other skins. In some cases, using the base model is possible (some of Zyra's skins I think do this) but that takes away from the skin's feel.
Some champs also have old models/rigging that really limits what a skin can do on them. Old twitch waited a really long time for skins because his old model was just terrible. Rumble has a similar problem - he only got a legendary because they made a whole new model for it. Several other champs can fall into this category, especially older ones.
Finally, some champs just don't lend themselves to skins. Zac is a good example - how do you make a green goo monster maintain the same shape/appearance but also not be a recolor? His pool party skin is well done, adds some splash effects and new stuff to his model while looking like him.
Additionally, for all champions and skins, there needs to be some spark of an idea that catches the team. Some of these champs are difficult to come up with ideas for (that actually make some sort of sense and look good in game). Crazy Cat Lady Yorik is a really fun idea, but will the Ghouls and Maiden really look that great as cats? Pool Party Illaoi sounds great, but will her tentacles look right as pool noodles? And I don't mean like, look like a cat, but fit the visual outline of the unit. For example, Zyra's plants in her different skins all have the same shape as the base model. Can you turn a Ghoul into a cat and have it do the things it does and look right? Illaoi's tentacles are kinda conical - what pool noodle is? Now, I don't have answers (and I feel like these issues can be worked around/adjusted to look OK) but there are many things about making skins that can become very difficult to actually implement.