It has to do with the fact that green cards are allocated based on a per-country quota. Other visas, especially H1B are not.
So, to simplify:
- Assume there are 1000 H1B visas and 1000 green cards allotted each year and that an H1B worker can apply for a green card after living in the US for a year.
- 50% of H1Bs are from India, so there are 500 H1Bs a year from India
- But green cards are subject to a 100/year/country quota. So, the next year, only 100 of the Indian H1B workers can apply for a green card.
- This creates a backlog of 5 years for all the 500 to get a green card
- The problem keeps getting worse because the next year, there are 500 more Indian workers applying for a green card but the queue only has 100 more green cards to allocate, so now the wait for the last applicant is now 8 years.
- This process then repeats for a few years and workers from India now have a 100+ year wait for a green card.
In reality, not all H1B workers apply for a green card and there have been some temporarily relief mechanisms passed in the past to mitigate the delays, but you can see why the problem is especially bad for workers from India. In the past, it was a problem for Chinese workers as well, but with the economy in China improving in the past few years, there is lower demand from Chinese workers for green cards.