Take this example:
Gliscor used Substitute! Hydreigon used Earthquake! It doesn't affect Gliscor...
It's the substitute that take all damage done to Gliscor, but it's only Gliscor that can fly not the substitute... How can a substitute fly/soar?
If you were behind a substitute and it used fly then the substitute would fly as well. Same with bounce and dig. Maybe the Pokemon carries the substitute with it while it is in the air or maybe creating a substitute is actually creating a duplicate of itself. This answer can be argued many ways but only game freak knows.