I have been at places where they go for 2-3 hours a day, with people doing little each day, and using "Wah, I'm blocked" as a way to blamestorm and shift responsibilities to other parties.
Then you're doing it wrong. Our company is officially agile (though really it's more like waterfall with daily status meetings), and the meetings rarely last more than 15 minutes. If person A says they're blocked waiting for person or team B to do something, we can normally trust them to sort it out themselves. Sometimes the scrum master will set up a meeting of just A and B (plus himself, to keep them honest), and then report the outcome of that to the rest of the team at the next stand-up meeting.
To be fair, I have been on agile teams where the stand-up meeting would last 30 to 45 minutes and tended to turn into a design meeting, with two or three people doing most of the talking. This was either because we hadn't understood the requirements well enough at the start, or had just got lazy and not done enough of the design upfront. The scrum master should've set up a separate meeting for the design work, or just told the rest of us we could leave once the design discussion started. I suspect the reason he didn't was because he was partly responsible for the design, so it was convenient for him to have just the one daily meeting. (Or he was coming up to retirement and had stopped caring about not wasting other people's time...)
Now, if someone is constantly using "I'm blocked" as an excuse to not do any work, that's a matter for their manager, not the team or the scrum master.