Ok. You wrote:
>I know a consumable In-App Purchase can be purchased every time the user wants fish. But fish is not expired until used
That is correct, a consumable, if not used, cannot 'go bad' after a few days like a fish. But that does not mean that you can't purchase a fish and upon purchase you have the fish as a display item (that would constitute 'use' of the consumable). Then over time the appearance of that fish and the taste of that fish can change. After a few days that fish can be quite rotten and suitable only for throwing away or composte. That's a perfectly good consumable.
Or, perhaps even better, you could allow the user to purchase not 'fish' from the Apple App Store but coupons as a consumable IAP where each coupon is good for one fish at the fish market. The coupons don't expire (like a consumable) but once exchanged for a fish the fish starts to go bad. Then your app can play out the purchase experience whenever and however it wants. The purchase of the 'coupons' or 'fish dollars' is done seperate from the app experience. That fits better into Kid's apps and would allow someone to purchase 100 fish and play for a few months.
You also wrote:
>...non-renewing In-App Purchase .....user cannot buy many times whenever users want. They have to wait a week .....to buy again.
That's not correct. You can rebuy a non-renewing subscription over and over again whenever you want. Each purchased subscription must last 7 days - it is unclear what that means in the case of your fish.
Go with consumable. Trigger the 'use' on purchase -