Your data is stored in separate lists and the syntax requires the data to be interleaved in a single list.
There are several solutions to this problem. Here are two that use your existing data format and two that require storing the data differently:
${users} Create List foo bar
${passwords} Create List saz voo
# zipping lists (makes data interleaved)
${logins} Evaluate [val for pair in zip(${users}, ${passwords}) for val in pair]
:FOR ${user} ${password} IN @{logins}
\ Log user: ${user} password: ${password}
# using a counter
${login count} Get Length ${users}
:FOR ${i} IN RANGE ${login count}
\ Log user: ${users[${i}]} password: ${passwords[${i}]}
# using an alternative format for storing the data - interleaved list
${logins} Create List foo saz bar voo
:FOR ${user} ${password} IN @{logins}
\ Log user: ${user} password: ${password}
# another alternative format for storing the data - dictionaries
${user 1} Create Dictionary user foo password saz
${user 2} Create Dictionary user bar password voo
${logins} Create List ${user 1} ${user 2}
:FOR ${login} IN @{logins}
\ Log user: ${login['user']} password: ${login['password']}