The .HealthChanged event won’t fire if you’re manually changing the health value with the properties window, otherwise your script appears to be working fine.
This can be demonstrated by the following:
game:GetService("Players").PlayerAdded:Connect(function(Player)
Player.CharacterAdded:Connect(function()
local Humanoid = Player.Character:WaitForChild("Humanoid")
Humanoid.HealthChanged:Connect(function(Health)
print(Health)
end)
repeat wait(1); Humanoid:TakeDamage(10) until Humanoid.Health == 0
end)
end)
Result:

Make sure to double check that your script isn’t disabled and/or that you’re not setting the health on the client.