Just found a workaround by replacing X >:< Y with X.a = Y.a, X.b = Y.b, that is:
test :-
X = #{a:0,b:1},
Y = #{a:_,b:_,c:_},
{Y.a + Y.b = Y.c},
{Y.c > 0},
% X >:< Y, % not working
% (X.a, X.b) = (Y.a, Y.b), % doesn't work either
X.a = Y.a, X.b = Y.b. % works fine
Note that instead of unifying them one by one as shown, (X.a, X.b) = (Y.a, Y.b) doesn’t work.