Why do mathematicians use single-letter variables? I have much more experience programming than I do with advanced mathematics, so perhaps this is just a comfort thing with me, but I often get frustrated when I try to follow mathematical notation. Specifically, I get frustrated trying to keep track of what each variable signifies.

As a programmer, this would be completely unacceptable no matter how many comments you added explaining it:

float A(float P, float r, float n, float t) {
  return P * pow(1 + r / n, n * t);
}


Yet a mathematician would have no problem with this:


  $A = P\ \left(1+\dfrac{r}{n}\right)^{nt}$
  
  where
  $A$ = final amount
  $P$ = principal amount (initial investment)
  $r$ = annual nominal interest rate (as a decimal)
  $n$ = number of times the interest is compounded per year
  $t$ = number of years


So why don't I ever see the following?

$\text{final_amount} = \text{principal}\; \left(1+\dfrac{\text{interest_rate}}{\text{periods_per_yr}}\right)^{\text{periods_per_yr}\cdot\text{years}}$
I think one reason is that often one does not want to remember what the variable names really represent. 

As an example, when we choose to talk about the matrix $(a_{ij})$ instead of the matrix $(\mathrm{TransitionProbability}_{ij})$, this expresses the important fact that once we have formulated our problem in terms of matrices, it is perfectly safe to forget where the problem came from originally -- in fact, remembering what the matrix "really" describes might only be unnecessary psychological baggage that prevents us from applying all linear-algebraic tools at our disposal. 

(As an aside, have you ever seen code written by a mathematician? It very often looks exactly like your first example.)
Yet another aspect...

In fact not all symbols consist of only one letter:
I have to get pretty creative within my publications not to exhaust all symbols within the one publication - including capitalization, other fonts and greek letters. I am not at all able to stay consistent within my entire body of work precisely because there are not enough letters. So, I actually use - at times - symbols with more than one letter. Thanks to that I have the iron rule to always use a dot for multiplication.
However, I try to avoid it, because of many of the mentioned reasons. It also helps to think hard before introducing a new symbol. This leads me to think whether I really need this new symbol or whether there is an underlying principle that allows me to abstract multiple concepts into a single concepts. This makes me a better researcher and actually leads to new publications by itself. (You could say the publications write themselves :-P.)
However, most publications in general do not need that many symbols and even I do not even nearly need as many symbols as I do while programming.