I've had the same question and did some spoiler-free searching around, according to two sources, the bonuses are permanent:
The stat boost is a one time thing and is permanent for each new dish
you eat. Afterwards, food only heals a bit of health when used.
One user then wonders if it is only permanent for the game session:
It does last after restarts as well? I'm afraid to quit the game and
have to cook all of this food again. D:
To which someone else replies:
It lasts even after you reboot the game.
https://steamcommunity.com/app/692850/discussions/0/1638662230385491403/
The second source:
You may have noticed the "prepare" option, which allows you to use
ingredients to prepare new foods, but may not have fully understood
what the "first time bonus" menu represents.
So food can be used for several different purposes: you can eat it to
regain health, pass it off to the old woman in the hub to complete
quests, or eat it for permanent first consumption bonuses. Yep, those
stat bonuses are permanent and will persist throughout the entire
game, so long as you eat that food type once. See that little fork and
spoon icon near the Rice Ball? That means you've eaten that type of
food and have already reaped the bonus effects.
What you're going to want to do is work your way down the entire
"prepare" menu and eat everything you can (preferably in the middle of
a boss fight to get more use out of food) to power up. Ingredients can
be purchased off the shop in the hub, grinded from enemies (check the
archive in the pause menu to see what each enemy drops), and
synthesized from this very "prepare/craft" menu.
The bonuses for individual pieces of food often aren't stark, but
could be the difference between barely killing a boss and failing.
https://www.destructoid.com/bloodstained-guide-craft-every-food-item-you-can-at-least-once-557993.phtml