Every health cost champion in the game has the ability to spam X with less cost than stated to themselves because their kit can recover health. That's how health cost champions work in this game. If Soraka didn't heal herself with Q then she wouldn't be paying health to use W either.
Maybe the mana cost on her Q is a tad low but it's low to encourage her to have an active lane phase. Make the mana cost high enough and she goes back to buying Ancient Coin, maxing W and healing herself by sitting back and watching minions die.
It's your fault if you can't dodge her Q and interact with her meaningfully in the cooldown because if you manage to do that then you win. Karma of all champions is very good at punishing Soraka if she walks up to Q and you manage to dodge it. If Soraka lands tons of Qs then yes she will win the lane but Soraka's Q is one of the more difficult poke spells in bot lane to hit versus Karma's Q being one of the easier ones if you can get around minions.
You're just complaining that Soraka has the ability to win, basically. She hit her skillshots and managed her health/mana well, you failed to dodge enough skillshots and foolishly tried to poke through her sustain despite that. That's on you. If you're not dodging Starcall then it's obvious you should be focusing on shielding your ADC and trying to get catches with snares rather than wasting all your mana on Q.