There are lots of good answers on here already. There are actually lots of answers for this question. Lots. I have years of experience on the exchange feed side and there are hundreds and thousands of variables.
All of these variables are funneled into systems owned by large financial institutions (I used to manage these - and only a few companies in the world do this so not hard to guess who I work for). Their computers then make trades based on all of these variables and equations. There are variables as whacky as how many times was a company mentioned in an aggregate news feed down to your basic company financials. But if there is a way to measure a company (or to just guess) there is an equation for it plugged into a super computer at a big bank.
Now there are two important factors on why you see this mad dash in the morning:
- the calendar day has changed. Meaning that every equation has a new output.
- computers unless programmed only know yes or no. They are binary. So if they are programmed to buy something then they buy it. They don't wait to see how the morning rushed turned or until they have had coffee. You should see a raw feed for NASDAQ and watching the big bank computers dueling each other at market open. I have had 2 milliseconds of raw market maker info from NASDAQ too big to open in a notepad file.
Now most of the rest of the day is also automated trades but by the time you are an hour into market open the computers for the most part have fulfilled their calendar buys. Everyone else's answer is right too. There is futures contracts that change, global exchange info changes, options expiring, basic news, whatever but all of these are amplified by the calendar day changing.