Came across this while looking for something else.
At the moment, only the person who started the approval can cancel it.
If you reassign the approval to the flow owner you will be able to cancel it.
In my approval flow, I create a record in another table that among other things stores the approval details (approval ID) and environment ID. This table also includes a Cancel Approval button that triggers the Cancel Approval flow/
In the Cancel Approval flow I reassign the approval and cancel it with a HTTP Entra preapproved action that uses https://approvals.teams.microsoft.com as the base resource URL.
/api/cancelApproval/@{triggerOutputs()?['body/bw_approvalidstring']}?flowEnvironment=@{triggerOutputs()?['body/bw_environmentid']}