In Parashat Vayeshlach (34:30) Yaakov admonishes Shimon and Levi, not for their destruction of Shechem, rather for the degradation of the hitherto tenuous relationship between he and the inhabitants of Eretz Cannan.
וַיֹּ֨אמֶר יַעֲקֹ֜ב אֶל־שִׁמְע֣וֹן וְאֶל־לֵוִי֮ עֲכַרְתֶּ֣ם אֹתִי֒ לְהַבְאִישֵׁ֙נִי֙ בְּיֹשֵׁ֣ב הָאָ֔רֶץ בַּֽכְּנַעֲנִ֖י וּבַפְּרִזִּ֑י וַאֲנִי֙ מְתֵ֣י מִסְפָּ֔ר וְנֶאֶסְפ֤וּ עָלַי֙ וְהִכּ֔וּנִי וְנִשְׁמַדְתִּ֖י אֲנִ֥י וּבֵיתִֽי׃ And Jacob said to Simeon and Levi: ‘Ye have troubled me, to make me odious unto the inhabitants of the land, even unto the Canaanites and the Perizzites; and, I being few in number, they will gather themselves together against me and smite me; and I shall be destroyed, I and my house.’
However, in Parashat Vayechi (49:6-7), as Yaakov addresses the future and likenesses of the brothers, he proceeds to rebuke them for their act of murder against the city of Shechem.
בְּסֹדָם֙ אַל־תָּבֹ֣א נַפְשִׁ֔י בִּקְהָלָ֖ם אַל־תֵּחַ֣ד כְּבֹדִ֑י כִּ֤י בְאַפָּם֙ הָ֣רְגוּ אִ֔ישׁ וּבִרְצֹנָ֖ם עִקְּרוּ־שֽׁוֹר׃ Let my soul not come into their council; Unto their assembly let my glory not be not united; For in their anger they slew men, And in their self-will they houghed oxen.
Why there did Yaakov choose to explicitly rebuke them for their actions?
(Translations from Sefaria)