'I took it off him' OR 'I took it from him'. I know that the second version is correct (unless it refers to an item that is literally on top of somebody, eg a wardrobe had fallen on someone), but what is the grammatical explanation?
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
Notwithstanding the excellent points made about this not being a grammatical issue, off is not even "wrong" in any aspect. It may not be a word you would use in an elevated register, but it is certainly used to express a nuance in slang that from doesn't handle or for which it seems too formal or "correct" a statement.
Simply put, off is often used with take (or get or any verb of acquisition) to suggest a forceful or cavalier (and probably illegitimate or even illegal) removal of an item from someone else, who has probably been victimized in the process.
Especially in the latter two examples, the use of from would seem too formal and would probably at least give the impression that the transaction might have been in some sense legitimate.
One synonym for "off" is "away from". So "I took it away from him" and "I took it off him" mean the same thing. I wouldn't go so far as to say that "took it off him" is incorrect, just that it's a bit colloquial and very informal. It wouldn't be appropriate for formal writing or speech, but other than being in the wrong register for pedants and high-level speakers and sensitive listeners, it's grammatical.
Therefore, the answer to your question is that there is no grammatical reason that the expression is incorrect.
You ask "what is the grammatical explanation". As various people have pointed out, there isn't one, because there is no grammatical difference.
But as you say, there is a difference in what context the two phrases are accepted, and you might ask for an explanation of this. The answer is prestige; or, to put it another way, fashion. Smart, educated, people said from him, and taught people who said off him that they were wrong. There's no other reason.
(And as for people who say off of him ... )