To understand this, it is very important to know about the structural differences between metals and semiconductors at an atomic level.
Metals contain a 'sea' of free electrons which displace from their position to make current flow in them.
Meanwhile, semiconductors have a much much lesser number of such free electrons due to higher nuclear charge on them as compared to metals.
Now metals have all the electrons free ie no more electrons can be generated in metals by applying energy because they are already free but in the case of semiconductors, this is possible as by applying some amount of heat, we can make the electrons jump the forbidden energy gap (the gap which if crossed, allows an electron to pass current else that electron doesn't participate in current) and move to the conduction band thus conducting electricity.
The key point to be noticed here is when we heat metal, we increase the kinetic energy of already free electrons and thus they collide with each other, hindering each other's movement.
On the other hand, in semiconductors, we actually generate new electrons for conduction by providing them energy to jump the forbidden energy gap and break free from the nucleus holding it so that it can move to contribute to the current.