I can think of at least two reasons.
One (a superficial reason, perhaps) is that it's shorter to write #if DEBUG than #ifdef DEBUG.
Another is that you can write multiple conditions like #if DEBUG || WARN if you want some code to run at either "debug" or "warn" levels, for example, which can't be done as easily (if at all) with #ifdef.