This answer is based on my understanding of the US banking system. We have check cashing businesses here too, which are just like what you describe, except for the spelling :-)
Let's consider what "cash it for free at the bank" really means, and why it might not be an option for everyone. One key issue is "which bank?"
As an example, suppose that I have an account at ABC Bank. I take out my checkbook for that account and write you a check for $500. (Terminology: In this case, I am the drawer or maker of the check, ABC Bank is the drawee bank, and you, user54609, are the payee. Disclaimer: "You" here is meant as a generic pronoun and I do not mean to insinuate that anything here actually applies to you personally.)
There are two common things you might do with the check:
If you have an account at some bank, say XYZ Bank, you might take the check to XYZ Bank and deposit it in your account. (You might be able to do this through an ATM, mobile app, or by mail, instead of in person.) XYZ Bank does not have a way to verify with certainty that the check is valid (e.g. they don't know what my signature looks like, nor whether I actually have $500 in my account at ABC), so they send it to ABC Bank, which verifies the check and transfers $500 to XYZ. (This is usually done through a central clearinghouse, such as the Federal Reserve in the US, and in some cases an image of the check may be sent electronically, instead of the physical check.) This process takes some time, so XYZ may not make the $500 available to you right away - there may be a hold period before you can withdraw that $500 from your account.
You could take the check to ABC Bank, in person. They will verify on the spot that the check is valid and that you are in fact user54609. If everything looks good, they will hand you $500 in cash (perhaps subtracting a fee of a few dollars).
Now we can see some possible problems with each of these approaches.
For 1:
Maybe you don't have a bank account at all. There are many possible reasons:
You don't have enough money to meet the minimum balance that a bank account would require.
You used to have an account, but you overdrew or otherwise misused an account, so the bank closed it. They then entered you in a registry such as ChexSystems which ensures that other banks know about this, and so no other bank will open a new account for you.
You immigrated to the country illegally and cannot get the documents (driver's license, social security number, etc) that a bank normally requires to open an account.
You simply don't like the idea of keeping your money in a bank.
Maybe you do have an account at XYZ Bank, but it's in another town. You need the cash today, so you can't use mail or a mobile app, and third-party ATMs usually don't accept deposits.
Maybe you need to spend the money today, and XYZ Bank would place a hold.
For 2:
ABC Bank may not have a branch you can conveniently visit. Maybe the nearest one is a long way away, in another city or across the country. Or maybe ABC is an online bank with no physical branches at all. Maybe it's in the same city, but you don't have transportation to get you there. Or maybe it's simply less convenient than the check-cashing business on the corner.
Maybe it is after usual banking hours, or a weekend, and ABC Bank is closed, but you need cash now.
In any of these situations, "cash it at the bank" might not be a viable option, and so you might reasonably turn to a check cashing business instead. As you say, you will pay a much higher fee there, but maybe it is worth it to you, or you just don't have any choice.
Another possibility, of course, is that you are poorly educated about the banking system, and you don't really understand that 1 and 2 are options, or how to go about them. But there's this storefront on the corner that says "Check Cashing", so this seems like a low-stress, uncomplicated way to exchange this piece of paper for money.
As such, there certainly are people who legitimately might want to cash a valid check at a check-cashing business.
Check cashing business do of course take some risk of fraud, since they can't necessarily verify the check. There are sometimes steps they can take to minimize this risk. Sometimes they can call ABC Bank and check that I have sufficient money in my account. Maybe they'll only accept certain kinds of checks, such as payroll checks from well-known companies for which you can produce a matching pay stub. And they can demand identification from you (perhaps allowing more flexible options than a bank), which helps ensure that you are the payee, and would make you easier to track down if you did commit fraud. But they will probably lose some money this way, so they will have to make their fees high enough to cover those losses.