Problem is cricket clubs generally run by unpaid volunteers who only have so much time.
Main cricket season July/August = school summer holidays. No mass or co-ordinated system in place to offer large numbers of kids the opportunity to learn/play during this time.
The volunteer thing I agree with, although your 2nd point is a little lazy. Age group cricket leagues and training are (generally) deliberately run from April to start of July to account for people being away during school summer holidays. There are many cricket camps run outside of this period in late July/August at clubs around the local area, and for the older kids (13+) there is usually the chance to get involved with senior cricket, either on a Saturday in the lower men's teams or on Sundays in friendly games. For younger kids, there's also the ECB All Stars Cricket initative for 5 - 8 year olds that has been running for a while.
Not sure if it is played in other parts of the country, but I know in Surrey there is also the 'Development' league on Sundays. 40 overs, coloured clothing/balls/stumps and a mix of junior and senior players - sort of a halfway house between boys and mens cricket and a great pathway for youngsters to start the transition to senior cricket.
A lot of the time however I think it's down to the parents - mums and dads who like cricket are more likely to try and get their kids involved in the sport whereas a lot of the time, people who don't like or understand the game/think it's boring/takes too long and distracts from school work will not take advantage of the information and opportunities that are pretty widely available. It's a stance I hate and really disagree, but have sadly seen it first hand (why deny kids the opportunity to try something just because you don't like it?)