I don't know if it is best practice or not, but we have about 25 two-node AlwaysOn clusters, and we have a separate server that hosts the file shares for all of them.
It depends what your goals are and your environment a little bit.
We have our fileshares on the "prod" side rather than the "ha" side of the cluster (HA side is on a different subnet in a remote data center ~10-15 miles away from the "prod" data center).
If something happens to just the "prod" node, or just the "ha" node, or "prod" and "ha" can't talk to each other, the cluster will stay up. The shortcoming is if we were to totally lose our "prod" datacenter, we would have to manually bring the HA node up as it wouldn't have a quorum and shut down.