Você pode entender Framework como um grupo especial de ferramentas. Uma IDE não é um framework. Um compilador também não é um framework. Um sistema operacional não é um framework. Mas tudo isso também serve para tornar o trabalho ágil, ou mesmo, possível.
Mas então, o que é um framework?
Bom, framework, ao pé da letra é uma estrutura de trabalho. Ou seja, uma solução pré-pronta, que você configura à sua maneira e lhe abstrai uma parte do problema. Em outras palavras, é um conjunto de classes, pacotes, arquivos de configuração, etc., que resolvem um problema específico.
Exemplos:
:arrow: Implementação de MVC para a Web
Struts, WebWork, Spring, VRaptor, …
:arrow: Testes de Unidade
JUnit, Cactus, …
:arrow: Persistência
Prevayler, Hibernate, …