Why asynchronous counters can not work at high clock frequencies?
The problem with asynchronous counters is that the clock of each flip flop comes from the preceding state, so the propagation delays of the clocks get accumulated and each bit changes at a slightly different time than the others. You need to resynchronize the outputs to make them change together at the same time. Otherwise the combinatorial logic after the counter will take a long time to settle and use a lot of power during that stormy period unnecessarily.