I was once going to write 20,000 words or so on this question, but haven't gotten to it yet.

Crawl is much newer, much more actively developed, much more prone to radically change from version to version, much less based on learning details through experience, much more helpful to the player in the UI (both in terms of features like autoexplore, autofight, autotravel, and item search, and in terms of proactively prompting you to avoid accidentally doing wasteful or pointless actions).

NetHack is older, funnier, prioritizes and facilitates obscure knowledge on the player's part more (e.g., complicated techniques for identifying items that require memorization), has more complicated interactions between and among items, players, and the environment (e.g. many more distinct ways to use a given item), and is crueler both in terms of unavoidable deaths ("The spikes were poisoned. The poison was deadly.") and in terms of allowing the player to take actions that foreseeablely result in waste or instant death.

Crawl has more replay value in terms of different ways to win [i.e., not having a standardized set of items that you need to collect and use], and even different definitions of what counts as winning [i.e., you can choose to collect anywhere from 3 to 15 runes]. Both games have conduct challenges of various kinds to make the game even harder.

In NetHack, unidentified scrolls are somewhat more dangerous than unidentified potions; in Crawl, unidentified potions are uniformly more dangerous than unidentified scrolls. :-)

In NetHack, obscure game knowledge that you acquired twenty years ago is still extremely valuable. In Crawl, it is probably already long obsolete and likely refers to monsters, items, or dungeon branches that no longer even exist in the modern game.

The two games famously differ in their approach to spoilers. In NetHack, the game almost never reveals any quantitative or concretely practical information about the purpose or effect of something, and even things like weapon hit percentages and relative efficacy traditionally are considered spoilers. In Crawl, the online help system will, in recent versions, even reveal your current exact hit probability against a particular enemy and the enemy's hit probability against you, as well as what kinds of attacks and resistances each of you has (and you can also learn more about why, if you want). In NetHack you even need comparatively rare items to learn with certainty what resistances you have at a particular moment; in Crawl you can pull this up on a convenient screen at any moment.

Religion is dramatically more important (and complicated!) in Crawl, and different gods significantly change your play style. In NetHack there are minor differences related to your god's alignment which you would probably not need to think about in a typical game; there are always exactly 3 gods, of 3 distinct alignments, in a NetHack game.

Item identification (and modification) is much more important in NetHack. Artifacts (special, unique items with abilities different from their base type) are rare and you might find or use something like 1-4 of them in a typical NetHack game. In Crawl, they're extremely widespread and you might find or use several dozen in a game, including ending up equipping 100% artifact weapons, armor, and jewelry by the end.

Your character class is more consequential in Crawl (there are comparatively larger differences in skills and intrinsics that result from it), though in NetHack it does result in a single completely unique per-character-class dungeon branch in each game.

As an example of the UI helpfulness difference: if you try to walk into lava in NetHack:

> You fall into the lava! Your small shield bursts into flame! Your pair of leather gloves bursts into flame! You burn to a crisp...

In Crawl:

> Why would you want to do that?

Anyway, that's less than 600 words, but I hope it's useful!

Edit: I like the sibling comment's observation that Crawl is "not simulation-y". To take one example, NetHack developers have thought a lot about gravity and circumstances where you or some object falls on top of you or some object or some trap and exactly what should happen then. And they've thought about what would, or wouldn't, cause flasks to shatter or eggs to break, and what the consequences of that would be, and so on. Crawl basically doesn't care about this: yes, if you stop flying and thereby fall into an unsurvivable place, you will die. Otherwise, nothing in Crawl ever falls on anything, and nothing ever shatters from impact. The extreme number of physical interactions that are simulated in Dwarf Fortress, and the resulting chains of causality, were reportedly inspired by NetHack. Dwarf Fortress has taken this much further and made the number of interactions radically larger, but NetHack does have this kind of flavor.

In Crawl, if you're telling someone why you died, it's generally "a monster hit me and I died from the resulting damage" (maybe with a surrounding tactical context about why you misjudged the fight). In NetHack, it could very often be something like "I did X, which caused Y to happen, which caused Z to happen, which then killed me instantly". (Crawl requires you to have 0 or fewer hit points in order to die, except from starvation in older versions that tracked hunger and satiety; in NetHack there are probably 100 different ways to die other than by taking hit-point damage. Maybe 6 or 7 just related to drawbridges...)