There are 2 reasons bots send timeouts at least twice. The first reason is what @tduva mentioned: sometimes if the timeout is sent too quickly after the message arrived, the client will think the timeout came before the message and the message remains. (I’ve only experienced this with BTTV, but I’m not sure how widespread it is.)
The other reason is historical: the chat was often unstable throughout 2014 and message timeouts were common, so bots sent multiple timeouts to make sure the message actually got removed. The chat has been very stable for a long time though, so sending more timeouts for this reason is largely useless nowadays.