Slightly shortened:
#show figure.where(kind: "req"): it => it.body // remove block
#let req-counter = counter("req")
#req-counter.update(1)
#let Req(text, priority) = {
let no() = req-counter.display() + req-counter.step()
let number() = req-counter.get().first()
let req() = figure(kind: "req", supplement: "Req.", numbering: "1.")[]
(context [#no()#req()#label("req:" + str(number()))], text, priority)
}
#table(
columns: 3,
align: (center, left, center),
stroke: none,
table.hline(stroke: 0.75pt, position: bottom),
table.header[*No*][*Requirement*][*Priority*],
..Req[A requirement on computational load][1],
..Req[A requirement on UI][2],
)
@req:1
@req:2
