It's a fuzzy world we live in
People seem to take a boolean stance on this problem, where like mostly in UX there aren't hard and fast rules - optimal design depends on context.
Hide vs disable
Just to bring all to par, the recommendation is to hide a control unless another user action can enable it - no point having something disabled if it will always be that way during the current transaction (even this may have exceptions - eg, serendipity).
Why you shouldn't disable
There is great sense in recommending not to disable certain things, as users may not be able to work out why things are disabled. I have seen this first hand (eg, people skipping the T&C checkbox and try to click a disabled submit button).
Giving error messages upon action could work a treat sometimes, especially with buttons; but menu items and input controls are each a different story.
Why you should disable
Promote recognition of valid actions - with both menu items and file lists, it is sometimes pays to tell users what they can and cannot do or select. If I've asked to upload an image, a file dialog that greys out non-image files would be of great aid, focusing me on valid choices.
Obviousness - designers tend sometimes to overthink things, and forget that users are humans and humans are intelligent beings. Sometimes it is obvious why something is disabled, so why fool the user to think they can perform an action which they can't (in that promoting errors - the word constraints comes to mind here)? If I have just chosen to upload an image, is it really that hard to work out why audio files are greyed out?
Save users from expanding futile effort - sometimes an action will take time to complete, and it is stupid to tell users at the end that it was invalid. Consider an expenses claim form where users enter expenses - each expense will have various fields (sum, VAT, entity, purpose, etc.). Once the expense has been paid (especially if it's in a VAT period that was already submitted to the customs authority) it cannot be changed. Would you really let users edit these paid expenses only to then tell them that doing so was invalid? What about the visual distinction between those that can be edited and those that don't?
Negative reinforcements are bad for you - yes, Skinner! We don't like negative reinforcements, we don't like being told we did something wrong, and when we formulate a course of action we nearly always build a mental expectation of what shall happen next. If our expectation is proven wrong the brain is, in simple terms at least, cognitively disappointed. The point? Tell your kids not to touch fire rather than let them do it and get burned.
On Mobile
I can't quite see how this is a desktop-mobile issue. I'd argue that this UX debate is a platform-independent.
And just as you've mentioned you haven't seen it yet, the add button in Apple's calendar iPhone app is disabled until you type something into either the title or location field:

Now how many people you know will land on this screen and rather than typing an event name (or press cancel) will be thinking
Why the hell can't I add a blank event?