For consistency. If there was a request object, there would need to be some sort of standard implementation that there was always access to so that the object could be properly instantiated, instance tested, etc. By using a plain old dict, you ensure compatibility at the cost of attribute access.
Also because WSGI is designed to be low-level, and if you want a request object you should really be using a library or framework.
Also because WSGI is designed to be low-level, and if you want a request object you should really be using a library or framework.