I do not believe that there was any specific decision to exclude such functions, nor was a rationale established.
As romantic as it might seem that designers (Kernighan, Ritchie, etc.) thought about all the possibilities and excluded the possibilities only after a deep and meaningful consideration, the reality is that the first years of C design (like quite a few other programming languages) followed for a much more modest philosophy: "Start small, don’t sweat about adding features, unless programmers WANT to do something."
Functions, such as variable initialization in for loops, are convenient for programmers - their absence does not stop execution. Thus, even if someone begged or campaigned for such a function (which probably was not), it probably dropped in priority order.
As for how things evolved .....
Until 1999, variable declarations were at the beginning of blocks in C (the code started with { and ended at closing } ), and not inside other statements. This is how things originally worked in the preliminary standard (K & R) C and previous languages such as B (which was actually an abbreviated derivative of previous languages).
Variable declaration / initialization in a for loop was introduced first in C ++. It appeared quite early (for example, in section 19 in ARM), and was eventually introduced into the first C ++ standard, which was ratified at the end of 1998.
There was some discussion in the C standard committee during the development of the C ++ standard (which took a decade) about adopting some C ++ functions in C. This discussion was often mainly in line with the “anything else in C break if we added this is?". A number of compiler providers have already implemented several of these functions in their C compilers as additional extensions (or their C compilers were actually C ++ compilers, with settings to disable C ++ functions incompatible with C), so the discussion of adding these functions was quite concise. Therefore, these functions, easily added to C from C ++, appeared in the 1999 C standard. Variable declaration / initialization in the for loop was one of these functions.
There is no evidence from this story of any particular decision or justification for the exclusion of such symptoms from early C - in short, they probably simply did not think about it.