I'm asking two things, whether this proof is correct, and if there is a more intuitive proof I haven't thought of.
We assume that $R$ is finite and that $1+1 \neq 0$ and $R$ has no zero divisors. Let $x \in R$ with $x = -x$. Then, $x+x = (1+1)x = 0$. Since $1+1 \neq 0$ and $R$ has no zero divisors, this results in $x = 0$, which means that $0$ is the only self-inverse element of $R$ (regarding addition). Next, consider a set $A \subset R$ such that $A \cap A^{-1} = \emptyset$ (where $A^{-1} = \{x^{-1}\;|\;x \in A\}$) and $R\setminus\{0\} = A \cup A^{-1}$ (the existence of such a set can be proved with Zorn's lemma, or, considering $R$ is finite, via induction). Then, $|R\setminus\{0\}| = |A\cup A^{-1}|$, and since $A \cap A^{-1} = \emptyset$, $|R| - 1 = |A| + |A^{-1}|$. Obviously, $|A| = |A^{-1}|$ (consider the bijection $x \mapsto x^{-1}$) and thus, $|R| = 2|A|+1$, which proves that $|R|$ is odd.
Here's a simpler proof.
As a finite abelian group of even order, $R$ contains an element $a$ of order 2.
Thus $2a=0$. Either $2=0$, or $a$ is a zero-divisor.
Edit
Also, your proof is correct, though there's no need to use Zorn's lemma or induction explicitly. Instead it can be proved directly if you do the following:
Consider the equivalence relation $x\sim y$ if $x=\pm y$. This partitions $R$ into equivalence classes, all but one of which have two elements (as you observed, $0$ is the only element with $x=-x$). Thus $|R|=2n-1$, where $n$ is the number of equivalence classes.