Electrons flow in metals, but inside most non-metals, free electrons don't exist. For example:
Protons flow in acids. But chemists call protons "+H ions"
+Na and -Cl flow in salt water (and in damp ground.)
-OH negative ions flow in alkaline electrolytes
-OH, protons, +Na, -Cl, +K, and all sorts of charged molecules flow inside human bodies. (When you receive a shock, no electrons flowed through your body.)
Electrons and positive ions flow in spark-plasma, lightning and fluorescent tubes.
In liquid metals, electrons flow one way and positive metal ions flow the other. (So, only solid metal wires are purely electron-conductors.)
In moving wires, both protons and electrons are moving. But since the amperes are the difference between electron and proton flows, the motion of the metal doesn't create any current. (Note that electric current in wires isn't a flow of electrons, instead it's the difference between electron-flow and proton-flow.)
Also, look at the currents in salt water: positives flow one way, and negatives go backwards past them, in the same conductor. What then is the "true" direction of the current?
Isn't this just a conceptual thing? It's still the electrons that are moving, and they're leaving "holes" behind so you can model either the electrons moving or the holes moving but there's still only one particle.
I agree with the top parent comment, I wish we had gotten the charge of electrons correct. I remember bandgap diagrams being confusing too because electrons basically roll "uphill" and felt like it would be easier to understand if we just called them positive.
Free electrons can temporarily occupy holes, then dislodge themselves and move on to the next place. But it will look like as if the holes are moving from one place to another.