There are thousands of reasons something might bounce and we have a limited number of categories we can put them into.
Typically though, we have the following
Temp Bounce - This is the least severe
It can be caused by things such as the recipient having an aggressive spam filter that has rejected the email. The system attempts to send to this address the next time you send.
Soft bounce - This is medium severity
A soft bounce could indicate a temporary delivery problem. It could be something like the inbox being full at the time of send (which may suggest that the address has been abandoned, the owner could be on maternity leave etc.). The recipient's email server could be offline or down.
Or the message could be too large for their server to accept. BulkMail keeps a tally of soft bounces. So 8 consecutive soft bounces then become a hard bounce. But 3 soft bounces then one successful send would reset the counter.
Hard bounce - The most severe
Once contact is marked as a hard bounce the system places a blue “Bounced” sticker next to the contact and will no longer attempt to send to it moving forward. A hard bounce will occur when an email is rejected by the recipient's server due to a permanent condition. It could be that the email address or domain name doesn't exist (Example, if someone has left a company their email address may be terminated).
It could be that the recipient's email server is blocking all deliveries. It could be that the IP address assigned to your account has a poor sending-reputation or is blacklisted (If this is the case it will likely be due to the quality of data being imported into your account. If you're importing lots of typo addresses or old data these problems may start to occur).
The reason that the system no longer attempts to send to hard bounced contacts is that continual sending to an address that produces a hard bounce will harm your sending reputation and make it harder to get emails delivered to your good contacts.