There are both technical and business reasons for the gap between upstream and downstream speeds
There are a few technical reasons. There is less upstream frequency available in the upstream. 42 MHz is the standard upstream/downstream split, 85 MHz is a midsplit, 200 MHz is a high split, and the downstream goes up to 1Ghz or even 1.2Ghz. The upstream modulation runs at 64 QAM (~27Mbs) and downstream modulation runs at 256 QAM (~38 Mbps). The upstream is also more sustainable to interference and impairments. So the technology is inherently imbalanced.
From a business prospective it is very difficult to cost justify. Moving the upstream/downstream split and/or upgrading to DOCSIS 3.1 is very expensive. The reality is that the typical customer use very little upstream bandwidth. It isn't uncommon for me to see a node with 24 or 32 downstream channels at 80% usage and 4 upstream channels are at 25% utilization or less. We see a downstream to upstream usage ratio of about 15:1. If you move the US/DS split that means you are taking away from available downstream frequency which means less DS data bandwidth or fewer video channels. It's hard to make a business case to invest in increasing upstream bandwidth when the data says people aren't going to use it.
Newer technology like DOCSIS 3.1, Docsis FDX, Remote PHY and modern plant designs like N+0 or N+1 (which means fewer customers per node) will bring higher upstream bandwidth, but it will be awhile before we see anything close to symmetrical speeds.