Short answer: Only (restricted) FOR loops are supported.
Salesforce's current official answer is documented at:
https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-programmatic-content.meta/mc-programmatic-content/languageElements.htm
As of January 2021 that text reads:
Using the FOR Process Loop
The FOR statement allows content within the FOR block to iterate over a variable number of times.
%%[FOR @Variable = <start expression> TO|DOWNTO <end expression> DO ]%%
[wrapped script or email content]
%%[NEXT @Variable]%%
The system locks the @Variable variable from modification within the process loop.
The start and end index expressions can use any one of the four types of input that evaluates to an integer:
Numeric constant
Attribute or data extension value
Variable
Function call, such as LookupRows()
The TO or DOWNTO keywords determine whether the value of the variable increases or decreases by one (1) with each iteration of the FOR loop. The variable value sets or increments by one (1) at the end of each iteration of the loop. The system compares the end index expression to the new value of the counter variable. If the value did not yet reach the end value or did not equal the end value, the loop will continue.
The NEXT statement closes the FOR loop. Optionally, follow the statement with the variable name controlling the loop.