потому что я еще раз говрю, Provider и его наследник BLocProvider - для передачи экземляра обхекта по контексту!
оно вообще с локом ни как не сзвязано кроме того, блок основан на СТРИМАХ стримы нужно ЗАКРЫТЬ или отписаться
по этому Блок имеет метод close()
разраб провадера знает об этом и у него был Provider(create, dispose)
Но что в случае передачи блока? надо каддый раз пистаь один код
dispose: (context, model) => model.close())
а это лень и омжно забыть