Thanks Mark! The following code snippet with the MOSEK solver worked for me, where I used M > 0 to define the upper bound.
% fit in cvx using mosek solver
cvx_begin
variables betas(p) betas_abs(p) betas_pos(p) betas_neg(p);
variable betas_binary(p) binary;
minimize(square_pos(norm(y - X * betas)) / (2 * n) + lambda * square_pos(norm(betas_abs - Z * alphas)) / 2);
subject to
betas == betas_pos - betas_neg;
betas_abs == betas_pos + betas_neg;
betas_pos >= 0;
betas_neg >= 0;
betas_pos <= M * betas_binary;
betas_neg <= M * (1 - betas_binary);
cvx_end