Why isn't there a CiviRules action to change membership status?
it is not there because apparently no one needed it :-) The actions in CiviRules get added whenever a CiviCRM user funds the development of one or develops one and shares it as a general action. So this has not happened up to now. If you really need it you are very welcome to develop and share it, or fund the development by a partner who will most certainly share it.
I totally understand if you can not develop nor have the funds available. That then means you have to wait until someone else invests energy or funds. The answer to the why question is then again no one so far has :-)