A lot of people here don't seem to know what the actual issue is and why this happens. Let me try and explain.
When someone with an iPhone sends a text message to a phone number, that iPhone checks with Apple to see if that number is registered with iMessage. If it is, that message is sent as 3G/4G/Wi-Fi data, to Apple servers, and not your telephone company. From there, Apple forwards your iMessage to the recipient. If the phone number isn't registered with iMessage, that message is sent as Cellular data, to your telephone company, where they send the message as a text message to the recipient.
Now the problem is, when someone switches from iPhone to Android, Apple still thinks your phone number is registered with iMessage. So when someone with an iPhone sends a text message to your phone number, Apple intercepts the message before it gets a chance to get to your phone company. So your message gets forwarded as an iMessage, and delivered to an iPhone that no longer exists. Your telephone company didn't even see the text message in the first place.
The bigger problem is that if you no longer have access to your old iPhone for any reason, Apple does not have a procedure to disable this from happening. The only way I've seen it done is when you call Apple Support, and they revoke your iMessage certificate. However, it seems this isn't an official procedure, as most Apple Support technicians are unaware of this.
What I think should be done is when you login to iCloud via
www.icloud.com, there should be a 'Messages app' where you can access your iMessages stored in iCloud, as well as change Messages settings, such as disabling iMessage.
Hope that clears things up.